码迷,mamicode.com
首页 > 其他好文 > 详细

Django Rest framework基础使用之 serializer

时间:2018-09-21 17:37:56      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:bsp   return   include   重新安装   自动   pps   环境   repr   snippet   

rest-framework文档地址:http://www.django-rest-framework.org/

1、安装:pip install djangorestframework

  说明:如果安装coreapi的时候,出现utf-8报错,可以将虚拟环境中的Lib---->site package--->pip--->compat---__init__.py中的第75行return s.decode("utf-8")改为"gbk",然后uninstall coreapi,再重新安装。

2、将 "rest_framework"加入到INSTALLED_APPS 设置中

3、配置url

  from django.conf.urls import url, include

  url(r"^api-auth/", include("rest_framework.urls"))

  ------这个url是restframework登录和登出的url,在使用浏览器API测试的时候是很有用的,如果你定义的某个接口是需要登录之后才能被调用的话。

  from rest_framework.documentation import include_docs_urls

  url(r"docs", include_docs_urls(title=""))

  ------配置DRF生成自动API文档

 4、restframework的serializer.Serializer

  类似于Django的Form类,可用来序列化和反序列化实例对象

  技术分享图片

使用serializer序列化model实例:

  技术分享图片

我们也可以用serializer来序列化querysets,序列化querysets的时候,我们需要在serializer参数中加上many=True的标志

  技术分享图片

 

 5、ModelSerializer

  从上面的例子中可以看出来,使用Serializer在定义序列化字段的时候,写的很复杂,几乎需要把我们的mode全部复制一遍,为了减少代码量,ModelSerializer应运而生

  同样是上面的例子,我们用ModelSerializer来重构如下:

  技术分享图片

  那么 ModelSerializer到底做了什么?通过下面这几行代码,我们可以看出来它只是通过model将字段自动关联起来了:

  from snippets.serializers import SnippetSerializer
  serializer = SnippetSerializer()
  print(repr(serializer))
  技术分享图片

  我们再去看它的ModelSerializer源码,可以看到,它里面已经为我们写好了create和update函数

 

Django Rest framework基础使用之 serializer

标签:bsp   return   include   重新安装   自动   pps   环境   repr   snippet   

原文地址:https://www.cnblogs.com/fiona-zhong/p/9651452.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!