做这个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. HttpClient模拟客户端请求实例

    HttpClient Get请求: /// <summary>        /// Get请求模拟        /// </summary>        /// < ...

  2. CSS定位:几种类型的position定位的元素

    当人们刚接触布局的时候都比较倾向于使用定位的方式.因为定位的概念看起来好像比较容易掌握.表面上你确切地指定了一个块元素所处的位置那么它就会坐落于那里.可是定位比你刚看到的时候要稍微复杂一点.对于定位来 ...

  3. 经典算法题每日演练——第十六题 Kruskal算法

    原文:经典算法题每日演练--第十六题 Kruskal算法 这篇我们看看第二种生成树的Kruskal算法,这个算法的魅力在于我们可以打一下算法和数据结构的组合拳,很有意思的. 一:思想 若存在M={0, ...

  4. 【C++基础】类的组合

    所谓类的组合是指:类中的成员数据是还有一个类的对象或者是还有一个类的指针或引用.通过类的组合能够在已有的抽象的基础上实现更复杂的抽象. 比如: 1.按值组合 #include<iostream. ...

  5. 一款非常棒的纯CSS3 3D菜单演示及制作教程

    原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大 ...

  6. Appium:通过wifi连接Android设备

    1.首先用USB连接你的Android设备,然后在终端运行命令,它可以启动设备的5555端口使其在网络上可以连接. adb tcpip 2.现在断开USB连接,然后确保设备和你的电脑连接同一个无线网络 ...

  7. CSharp设计模式读书笔记(20):观察者模式(学习难度:★★★☆☆,使用频率:★★★★★)

    观察者模式(Observer Pattern):定义对象之间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新.观察者模式的别名包括发布-订阅(Publish/ ...

  8. pinyin4j新手教程

    Pinyin4j新手教程 pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com). 下面是一些详细的介绍和使用方式. ...

  9. ThinkPHP框架设计与扩展总结

    详见:http://www.ucai.cn/blogdetail/7028?mid=1&f=5 可在线运行查看效果哦 导言:ThinkPHP框架是国内知名度很高应用很广泛的php框架,我们从一 ...

  10. orleans开篇之hello world

    orleans开篇之hello world 什么是orleans Orleans是一个建立在.NET之上的,设计的目标是为了方便程序员开发需要大规模扩展的云服务.Orleans项目基本上被认为是并行计 ...