做这个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. UVA11983 - Weird Advertisement(扫描线)

    UVA11983 - Weird Advertisement(扫描线) 题目链接 题目大意:给你n个覆盖矩形,问哪些整数点是被覆盖了k次. 题目大意:这题和hdu1542是一个题型.可是这题求的是覆盖 ...

  2. 无废话WCF入门教程五[WCF的通信模式]

    一.概述 WCF在通信过程中有三种模式:请求与答复.单向.双工通信.以下我们一一介绍. 二.请求与答复模式 描述: 客户端发送请求,然后一直等待服务端的响应(异步调用除外),期间处于假死状态,直到服务 ...

  3. 抄360于Launcher浮动窗口的屏幕显示内存使用情况(改进版)

    MainActivity例如下列: package cc.cc; import android.os.Bundle; import android.view.View; import android. ...

  4. 如何清除应用程序承载 WebBrowser 控件时缓存

    原文:如何清除应用程序承载 WebBrowser 控件时缓存 http://support.microsoft.com/kb/262110/zh-cn察看本文应用于的产品 function loadT ...

  5. asp.net mvc3 的数据验证(一)

    原文:asp.net mvc3 的数据验证(一)      对于web开发人员来说,对用户输入的信息进行验证是一个重要但是繁琐的工作,而且很多开发者都会忽略.asp.net mvc3框架使用的是叫做“ ...

  6. Touch Punch在移动设备上面增加jQuery UI的触摸支持|Jquery UI 支持移动端 触摸滑动等

    jQuery UI是我们前台开发常用的UI前端类库,但是目前的jQuery UI用户界面类库在互动和widget上并不支持touch事件.这意味着你在桌面上设计的优雅的UI可能在触摸设备,例如,ipa ...

  7. 从久负盛名的GoDaddy开发革命来看Node.js的风靡程度

    英文原文连接:http://venturebeat.com/2015/02/09/godaddy-nodejitsu/ 网站主机托管公司GoDaddy将要进一步通过新的开发工具来提升自身能力.最新消息 ...

  8. c#万能视频播放器(附代码)

    原文:c#万能视频播放器(附代码) c#万能视频播放器 本人之前很多的文章中均提到了使用libvlc为播放器内核制作的播放器,也许有些朋友对此感兴趣,于是我用c#写了一个调用libvlc api实现的 ...

  9. PHP 17: MySQL的简单介绍

    原文:PHP 17: MySQL的简单介绍 这一章将简单介绍MySQL的基本知识. 本文来自http://lib.hackbase.com/html/8/35125.htm. MySQL是最受欢迎的开 ...

  10. erlang mnesia数据库简单应用

    mnesia是erlang自带的分布式数据库,基于ets和dets实现的.mnesia兼顾了dets的持久性和ets的高性能,可以自动在多个erlang节点间同步数据库.最关键的是,mnesia实现了 ...