做这个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 restful webservice返回json数据的更多相关文章

  1. django restul webservice返回json数据

    做这个demo的前提是你已经配好了python ,django ,djangorestframwork(在我的上一篇博客中有介绍,大家也可以google),mysql-python等. djangor ...

  2. Spring MVC 4.1.4 RESTFUL风格返回JSON数据406错误处理

    Spring MVC 4.1.4 RESTFUL风格返回JSON数据406错误处理 今天在使用spring4.1.4,使用ResponseBody注解返回JSON格式的数据的时候遇到406错误. 解决 ...

  3. ASP.net jQuery调用webservice返回json数据的一些问题

    之前寒假时,试着使用jQuery写了几个异步请求demo, 但是那样是使用的webform普通页面,一般应该是用 webservice 居多. 最近写后台管理时,想用异步来实现一些信息的展示和修改, ...

  4. jQuery调用WebService返回JSON数据

    相信大家都比较了解JSON格式的数据对于ajax的方便,不了解的可以从网上找一下这方面的资料来看一下,这里就不多说了,不清楚的可以在网上查一下,这里只说一下因为参数设置不当引起的取不到返回值的问题. ...

  5. django 使用HttpResponse返回json数据为中文

    之前我用django一般用JsonResponse来返回json数据格式 但是发现返回中文的时候会乱码 from django.http import JsonResponse def test(re ...

  6. asp.net webservice 返回json数据乱码解决方法

    [WebMethod] public void QueryRiskNotice(string phone) { try { var data = _riskNoticeDal.QueryRiskNot ...

  7. 【C#】WebService接受跨域请求及返回json数据

    问题概述 通过Web Service发布服务供客户端调用是一种非常简单.方便.快速的手段,并且服务发布后会有一个服务说明页面,直观明了,如图: 一般情况下,在web页面中的JavaScript中调用W ...

  8. WebService返回json格式数据供苹果或者安卓程序调用

    1.新建一个WebService. 2. /// <summary> /// DemoToJson 的摘要说明 /// </summary> [WebService(Names ...

  9. MOOC(2)-Django开发get、post请求,返回json数据

    1.对get请求直接返回参数 如果请求多个参数,也只能返回一个参数,这里只返回了username参数 如果想要返回多个参数值,可以返回json格式数据 2.对get请求返回json数据 # views ...

随机推荐

  1. Matlab splinetx

    function v = splinetx(x,y,u) %SPLINETX Textbook spline function. % v = splinetx(x,y,u) finds the pie ...

  2. LeetCode_算法及数据结构覆盖统计

    [输入]共计151道题的算法&数据结构基础数据 (见附录A) [输出-算法]其中有算法记录的共计 97道 ,统计后 结果如下  top3(递归,动态规划,回溯) 递归 动态规划 回溯 BFS ...

  3. AJAX及其跨域的主要解决方法

    AJAX = Asynchronous JavaScript andXML(异步的 JavaScript 和 XML).通过在后台与服务器进行少量数据交换,使网页实现异步更新.要明白异步交互可以通过同 ...

  4. linux_ubuntu12.04 安装 svn

    sudo apt-get install subversion sudo mkdir /home/svn sudo svnadmin create /home/svn/repository cd /h ...

  5. 百度地图API详解之事件机制,function“闭包”解决for循环和监听器冲突的问题:

    原文:百度地图API详解之事件机制,function"闭包"解决for循环和监听器冲突的问题: 百度地图API详解之事件机制 2011年07月26日 星期二 下午 04:06 和D ...

  6. poj 2828 Buy Tickets(树状数组 | 线段树)

    题目链接:poj 2828 Buy Tickets 题目大意:给定N,表示有个人,给定每一个人站入的位置,以及这个人的权值,如今按队列的顺序输出每一个人的权值. 解题思路:第K大元素,非常巧妙,将人入 ...

  7. Android 4.4 沉浸式透明状态栏与导航栏

    Android 系统自4.2 開始 UI 上就没多大改变,4.4 也仅仅是添加了透明状态栏与导航栏的功能,如图 那么如今我就来给大家解说下怎样使用这个新特性,让你的 app 尾随潮流,当然假设你不在乎 ...

  8. 利用WebBrowser彻底解决Web打印问题

    原文:利用WebBrowser彻底解决Web打印问题 利用WebBrowser彻底解决Web打印问题(包括后台打印) BS架构下的打印大家是怎么解决的呢,我最近作了一个项目正好负责这一块,不仅要求打印 ...

  9. 使用collectd与visage收集kvm虚拟机性能实时图形

    软件功能: 通过collectd软件来监控收集kvm虚拟机的性能数据,包含cpu,memory.磁盘IO.网络流量等 通过visage软件将收集到的数据绘制图形. 安装: 系统环境:ubuntu12. ...

  10. java设计模式之四建造者模式(Builder)

    工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到 ...