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

djangorestframwork的官网点击打开链接http://django-rest-framework.org/

工程目录:

下面开始:

models.py 主要负责数据库对象的映射

  1. '''
  2. Created on 2013-9-19
  3. @author: lele
  4. '''
  5. from django.db import models
  6. # Create your models here.
  7. class Student(models.Model):
  8. id=models.IntegerField(primary_key=True)
  9. Pname= models.CharField(max_length=500)
  10. age=models.IntegerField()
  11. class Meta:
  12. ordering = ('id',)

序列化:

serializers.py

  1. # -*- coding: UTF-8 -*-
  2. '''
  3. Created on 2013-9-19
  4. @author: lele
  5. '''
  6. from django.forms import widgets
  7. from rest_framework import serializers
  8. from models import Student,Content
  9. class StudentSerializer(serializers.ModelSerializer):
  10. mystudentsdetail = serializers.HyperlinkedRelatedField(many=True, view_name='student-detail')
  11. class Meta:
  12. model = Student
  13. fields = ('id', 'Pname','age')
  14. id = serializers.IntegerField()  # Note: `Field` is an untyped read-only field.
  15. Pname= serializers.CharField(max_length=100)
  16. age=serializers.IntegerField()
  17. def restore_object(self, attrs, instance=None):
  18. """
  19. Create or update a new snippet instance.
  20. """
  21. if instance:
  22. # Update existing instance
  23. instance.Panme = attrs['Pname']
  24. instance.id = attrs['id']
  25. instance.age = attrs['age']
  26. return instance
  27. # Create new instance
  28. return Student(**attrs)

views.py:

  1. '''
  2. Created on 2013-9-19
  3. @author: lele
  4. '''
  5. from django.http import HttpResponse
  6. from models import Student,Content
  7. from serializers import StudentSerializer
  8. from rest_framework import viewsets
  9. class StudentViewSet(viewsets.ModelViewSet):
  10. """
  11. This viewset automatically provides `list`, `create`, `retrieve`,
  12. `update` and `destroy` actions.
  13. Additionally we also provide an extra `highlight` action.
  14. """
  15. queryset = Student.objects.all()
  16. serializer_class = StudentSerializer

修改配置文件:

在settings.py中修改databases

  1. DATABASES = {
  2. 'default': {
  3. 'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
  4. 'NAME': 'test',                      # Or path to database file if using sqlite3.
  5. # The following settings are not used with sqlite3:
  6. 'USER': 'root',
  7. 'PASSWORD': '123456',
  8. 'HOST': '127.0.0.1',                      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
  9. 'PORT': '3306',                      # Set to empty string for default.
  10. }
  11. }

还是在settings.py中添加:

  1. REST_FRAMEWORK = {
  2. # Use hyperlinked styles by default.
  3. # Only used if the `serializer_class` attribute is not set on a view.
  4. 'DEFAULT_MODEL_SERIALIZER_CLASS':
  5. 'rest_framework.serializers.HyperlinkedModelSerializer',
  6. 'DEFAULT_PERMISSION_CLASSES': (
  7. 'rest_framework.permissions.AllowAny',
  8. ),
  9. 'PAGINATE_BY': 3,  #every  number in page
  10. 'PAGINATE_BY_PARAM': 'page_size',
  11. 'MAX_PAGINATE_BY': 100
  12. }

设置访问连接:

在urls.py设置

  1. from django.conf.urls import patterns, include, url
  2. from rest_framework import viewsets, routers
  3. from views import StudentViewSet
  4. router = routers.DefaultRouter()
  5. router.register(r'mystudents',StudentViewSet)
  6. urlpatterns = patterns('',
  7. url(r'^', include(router.urls)),
  8. url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
  9. )

就剩最后一步了在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数据的更多相关文章

  1. django restful webservice返回json数据

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

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

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

  3. jQuery调用WebService返回JSON数据

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

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

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

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

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

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

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

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

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

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

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

  9. asp.net项目下的web service返回json数据问题

    App_Code目录下放置WebService.cs文件,文件内容如: using System; using System.Collections.Generic; using System.Dat ...

随机推荐

  1. js中prototype用法(转)

    JavaScript能够实现的面向对象的特征有:·公有属性(public field)·公有方法(public Method)·私有属性(private field)·私有方法(private fie ...

  2. Linux makefile 课程 非常具体的,和理解

    最近的一项研究Linux根据C计划,我买了一个电话<Linux环境C编程指南>阅读makefile这使他看起来困惑,我可能无法理解. 于是google到了下面这篇文章. 通俗易懂. 然后把 ...

  3. javascript权威指南(1)

    javascript常用知识点: http://www.cnblogs.com/pingfan1990/p/4309223.html Function.prototype.bind()Function ...

  4. 【百度地图API】——如何用label制作简易的房产标签

    原文:[百度地图API]--如何用label制作简易的房产标签 摘要: 最近,API爱好者们纷纷说,自定义marker太复杂了!不仅定义复杂,连所有的dom事件都要自己重新定义.有没有快速简易创建房产 ...

  5. Facebook Hack 语言 简介

    1. Hack 是什么? Hack 是一种基于HHVM(HipHop VM 是Facebook推出的用来执行PHP代码的虚拟机,它是一个PHP的JIT编译器,同时具有产生快速代码和即时编译的优点.)的 ...

  6. 使用JavaScriptSerializer进行序列化日期类型应该注意的问题

    原文:使用JavaScriptSerializer进行序列化日期类型应该注意的问题 JavaScriptSerializer在序列化DateTime时,是用刻度来表示的,具体在Json体现为:\/Da ...

  7. 第3章2节《MonkeyRunner源码剖析》脚本编写示例: MonkeyDevice API使用示例(原创)

    天地会珠海分舵注:本来这一系列是准备出一本书的,详情请见早前博文“寻求合作伙伴编写<深入理解 MonkeyRunner>书籍“.但因为诸多原因,没有如愿.所以这里把草稿分享出来,所以错误在 ...

  8. 【Android开发日记】第一个任务Android Service!Service靴+重力感应器+弹出窗口+保持执行

    前言: 近期在写一个小程序,需求是手机摇一摇就弹窗出来.第一次使用了Service,学习了两天,实现了Service弹窗,开机启动,Service启动和销毁,Service保持一直执行. 满足了自己的 ...

  9. jmeter 控制器

    Critical Section Controller :

  10. IntelliJ IDEA 13 破解安装(JRebel 5.6.3a皴)

    首先安装IntelliJ 13,记住下载Ultimate Edition版本号,否则就必须打破..   安装到本地.然后一些配置(这一步不能.不过考虑到交换系统后,保存,建议做) 打开{install ...