django restul webservice返回json数据
做这个demo的前提是你已经配好了python ,django ,djangorestframwork(在我的上一篇博客中有介绍,大家也可以google),mysql-python等。
djangorestframwork的官网点击打开链接http://django-rest-framework.org/
工程目录:
下面开始:
models.py 主要负责数据库对象的映射
- '''
- Created on 2013-9-19
- @author: lele
- '''
- from django.db import models
- # Create your models here.
- class Student(models.Model):
- id=models.IntegerField(primary_key=True)
- Pname= models.CharField(max_length=500)
- age=models.IntegerField()
- class Meta:
- ordering = ('id',)
序列化:
serializers.py
- # -*- coding: UTF-8 -*-
- '''
- Created on 2013-9-19
- @author: lele
- '''
- from django.forms import widgets
- from rest_framework import serializers
- from models import Student,Content
- class StudentSerializer(serializers.ModelSerializer):
- mystudentsdetail = serializers.HyperlinkedRelatedField(many=True, view_name='student-detail')
- class Meta:
- model = Student
- fields = ('id', 'Pname','age')
- id = serializers.IntegerField() # Note: `Field` is an untyped read-only field.
- Pname= serializers.CharField(max_length=100)
- age=serializers.IntegerField()
- def restore_object(self, attrs, instance=None):
- """
- Create or update a new snippet instance.
- """
- if instance:
- # Update existing instance
- instance.Panme = attrs['Pname']
- instance.id = attrs['id']
- instance.age = attrs['age']
- return instance
- # Create new instance
- return Student(**attrs)
views.py:
- '''
- Created on 2013-9-19
- @author: lele
- '''
- from django.http import HttpResponse
- from models import Student,Content
- from serializers import StudentSerializer
- from rest_framework import viewsets
- class StudentViewSet(viewsets.ModelViewSet):
- """
- This viewset automatically provides `list`, `create`, `retrieve`,
- `update` and `destroy` actions.
- Additionally we also provide an extra `highlight` action.
- """
- queryset = Student.objects.all()
- serializer_class = StudentSerializer
修改配置文件:
在settings.py中修改databases
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'test', # Or path to database file if using sqlite3.
- # The following settings are not used with sqlite3:
- 'USER': 'root',
- 'PASSWORD': '123456',
- 'HOST': '127.0.0.1', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
- 'PORT': '3306', # Set to empty string for default.
- }
- }
还是在settings.py中添加:
- REST_FRAMEWORK = {
- # Use hyperlinked styles by default.
- # Only used if the `serializer_class` attribute is not set on a view.
- 'DEFAULT_MODEL_SERIALIZER_CLASS':
- 'rest_framework.serializers.HyperlinkedModelSerializer',
- 'DEFAULT_PERMISSION_CLASSES': (
- 'rest_framework.permissions.AllowAny',
- ),
- 'PAGINATE_BY': 3, #every number in page
- 'PAGINATE_BY_PARAM': 'page_size',
- 'MAX_PAGINATE_BY': 100
- }
设置访问连接:
在urls.py设置
- from django.conf.urls import patterns, include, url
- from rest_framework import viewsets, routers
- from views import StudentViewSet
- router = routers.DefaultRouter()
- router.register(r'mystudents',StudentViewSet)
- urlpatterns = patterns('',
- url(r'^', include(router.urls)),
- url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
- )
就剩最后一步了在mysql数据库中添加 数据
注意:数据库的名字与setting.py中的一致,table的名字格式是:项目名_对象名
例如我的项目名为:djangodemo2 models.py中的model对象名为student ,所以我的表名为:djangodemo2_student
有三个字段 id,Pname ,age 要与serializers.py中的fields字段相同
本例中的字段如下:
运行测试:
在浏览器中输入:http://localhost:8000 即可看到如下页面:
点击链接进入具体信息页面:
转载请注明:
新浪微博:http://weibo.com/u/3202802157
django restul webservice返回json数据的更多相关文章
- django restful webservice返回json数据
做这个demo的前提是你已经配好了python ,django ,djangorestframwork(在我的上一篇博客中有介绍,大家也可以google),mysql-python等. djangor ...
- ASP.net jQuery调用webservice返回json数据的一些问题
之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...
- jQuery调用WebService返回JSON数据
相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...
- django 使用HttpResponse返回json数据为中文
之前我用django一般用JsonResponse来返回json数据格式 但是发现返回中文的时候会乱码 from django.http import JsonResponse def test(re ...
- asp.net webservice 返回json数据乱码解决方法
[WebMethod] public void QueryRiskNotice(string phone) { try { var data = _riskNoticeDal.QueryRiskNot ...
- 【C#】WebService接受跨域请求及返回json数据
问题概述 通过Web Service发布服务供客户端调用是一种非常简单.方便.快速的手段,并且服务发布后会有一个服务说明页面,直观明了,如图: 一般情况下,在web页面中的JavaScript中调用W ...
- WebService返回json格式数据供苹果或者安卓程序调用
1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...
- MOOC(2)-Django开发get、post请求,返回json数据
1.对get请求直接返回参数 如果请求多个参数,也只能返回一个参数,这里只返回了username参数 如果想要返回多个参数值,可以返回json格式数据 2.对get请求返回json数据 # views ...
- asp.net项目下的web service返回json数据问题
App_Code目录下放置WebService.cs文件,文件内容如: using System; using System.Collections.Generic; using System.Dat ...
随机推荐
- c++的vector容器
c++还有一个很常用的容器就是vector容器,他是数组实现的,是一种可变长的容器,在很多的时候可以简化我们的编程.可学习的链接:http://www.cnblogs.com/mr-wid/archi ...
- EasyUI基础入门之Resiable(可缩放)
easyui的base插件学习已经进行到Resizable(可缩放)了.照旧看看easyui官网的API. Resiable 正如其字面意思一样(可伸缩),resiable主要是将一些html元素扩展 ...
- crawler_解析之_jquery_语法选择器使用方法
爬虫解析一般使用 正则或者给予样式的 jquery语法选择器 正则是根本,类比jsoup基于dom,底层也有部分是基于正则实现的,linux操作系统 文本处理也是借助强大的正则体现的 .关于正则 请参 ...
- vs2005中的WebBrowser控件的简单应用
原文:vs2005中的WebBrowser控件的简单应用 这个控件被封装了一下,和以前的调用方式稍有不同.事件还是那几个,变化不大.方法变了不少.从网上能查到的资料不多,贴出一些代码来作参考.看看这段 ...
- DirectX11 学习笔记2 - 加入关键事件 实现视角转换 旋转
上的程序的的基础上.在基类D3DBase添加摄像头功能 //录影机 void D3DBase::setCamera() { //关键事件 //假定A,S,D,W,Q,E,Z,X,C键被按下.动摄像机 ...
- MVC5控制器、路由、返回类型、选择器、过滤器
ASP.NET MVC5 学习笔记-1 控制器.路由.返回类型.选择器.过滤器 [TOC] 1. Action 1.1 新建项目 新建项目->Web->Asp.net Web应用程序, ...
- 重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 WebView 中的内容, 为 WebView 截图
原文:重新想象 Windows 8.1 Store Apps (81) - 控件增强: 加载本地 html, 智能替换 html 中的 url 引用, 通过 Share Contract 分享 Web ...
- 快速构建Windows 8风格应用34-构建Toast通知
原文:快速构建Windows 8风格应用34-构建Toast通知 引言 开发过WindowsPhone应用或者使用过WindowsPhone手机的开发者都知道,我们会收到一些应用的提示信息,这些提示信 ...
- linux下的watch命令
linux下的watch命令 在linux下,watch是周期性的执行下一个命令,并全屏显示执行结果. watch [-dhvt] [-n <seconds>] [--difference ...
- VS2015安装
VS2015安装 Secondary Installer Setup Failed求解决方案 看到微软最近的一系列变化,着实让我等兴奋不已.VS2015下载地址就不说了.先来记录一下微软的几个变化吧. ...