做这个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. HDU-4862-Jump

    比今年第二个问题,第一个田间学校更多.在游戏中可以做不做,卡在K一旦有.阅读解决一个问题后,才做.内置图所示k这的确是很聪明倍. 代码: #include<cstdio> #include ...

  2. IEnumerable,IQueryable的区别

    IEnumerable,IQueryable之前世今生 IEnumerable<T>在.Net2.0中我们已经很熟悉了.你想要利用Foreach迭代吗?实现IEnumerable<T ...

  3. UVA - 10014 - Simple calculations (经典的数学推导题!!)

    UVA - 10014 Simple calculations Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...

  4. 惰性函数——JS高级

    我们先来看一下js的异步提交. XHR我们在原生的时候常常用到,因为常用到,我们更多把封装到了工具库中 先看下他最常用的实现 // 旧方法 function createXHR() { var xhr ...

  5. bash shell:重定向标准错误输出

    如何重定向标准错误输出到标准输出?如何把标准错误输出输出到一个文件? Bash提供了I/O重定向工具,有3个缺省的文件(标准输出流): stdin - 用来获取输入,比如键盘.文件重定向 stdout ...

  6. oracle_查询Oracle正在执行和执行过的SQL语句

    ---正在执行的select a.username, a.sid,b.SQL_TEXT, b.SQL_FULLTEXT  from v$session a, v$sqlarea b where a.s ...

  7. java_Eclipse主题颜色配置+全屏

    http://www.eclipsecolorthemes.org/ 这个是主题的网站. 在Eclipse里, File->Import->General->Preferences- ...

  8. UVa 740 - Baudot Data Communication Code

    称号:目前编码,他们shift键被按下,并提出,对应的两个编码,其中,2相应的编码shift操作. 给你适当的编码值.寻求相应的字符串. 分析:模拟.字符串. 简单题,标记shift的升降分类处理就可 ...

  9. 【LeetCode】 sort list 单清单归并

    称号:Sort a linked list in O(n log n) time using constant space complexity. 思路:要求时间复杂度O(nlogn) 知识点:归并排 ...

  10. 吐槽一下项目中的代码坏味道:滥用java常量

    我们的项目中是否充斥着类似以下的代码呢?定义一个专门存放常量的java类(接口),非常多其它类依赖该常量类. public interface IConstant { int ZERO = 0; St ...