做这个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. Code Forces 414B 很不错的双手,以促进合规

    http://codeforces.com/problemset/problem/414/B 题目挺不错的.留个纪念,活动脑筋不错的题目 #include<iostream> #inclu ...

  2. Jquery--仿制360右下角弹出窗口

    原文:Jquery--仿制360右下角弹出窗口 先发浏览器效果图,给大家看. 要实现这样的效果,按照思路,第一步,写好CSS布局,将图片放到浏览器右下角的位置 CSS代码很灵活,我写的只是简单的一种而 ...

  3. Mac下Android配置及unity3d的导出Android

    昨晚实在弄的太晚了,费尽脑汁才弄出来. ok,关于mac下的eclipse的安卓配置,我仅仅贴一个网址,就ok了 http://developer.android.com/sdk/index.html ...

  4. css2与css3的区别

    css2与css3的区别 CSS3引进了一些新的元素新的特性,我收集以下,自己做了一个小结: animation(基础动画)eg:  div{animation: myfirst 5s linear ...

  5. openfire修改服务器名称方法

    1.登陆openfire管理页面,在主页面下方选择编辑属性,修改服务器名称为当前主机名称,点击保存属性,按页面提示重启服务器. 2.重启后,主页的服务器属性下的服务器名称出现一个叹号,鼠标放上去显示F ...

  6. MVC验证11-对复杂类型使用jQuery异步验证

    原文:MVC验证11-对复杂类型使用jQuery异步验证 本篇体验使用"jQuery结合Html.BeginForm()"对复杂类型属性进行异步验证.与本篇相关的"兄弟篇 ...

  7. 第1章1节《MonkeyRunner源码剖析》概述:前言(原创)

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

  8. 转载:善待Redis中的数据

    Redis是我们数据的保管者,我们可以随时存随时取,大的小的,重要的不重要的,它都毫无怨言的帮我们保存着,甚至有些时候,我们变得很懒,存东西进去的时候顺便还贴张纸:"过了一个星期就帮我扔了吧 ...

  9. sql2005还原超长sql脚本,还原超大脚本文件

    原文:sql2005还原超长sql脚本,还原超大脚本文件 从外网把数据库用导出脚本的方式导出来了,280M的样子,导是导出来了,但是在本机执行sql脚本的时候,直接就是out of memory,之前 ...

  10. jsonp总结

    由于“同源策略”的限制,ajax不能做跨域请求,jsonp是当下解决跨域请求最流行的方案,来个例子(index.html): <!doctype html> <html lang=& ...