Django Rest framework基础使用之 serializer

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

Django Rest framework是一个很是强大且灵活的工具包,用于构建web APIdjango

选择rest framework的理由:api

  1)在线可视的API浏览器

  2)验证策略涵盖了OAuth1a和OAuth2函数

  3)同时支持ORM(对象关系映射)和非ORM数据源的序列化工具

  4)大量文档及强大社区支持测试

一、安装:pip install djangorestframeworkurl

  说明:若是安装coreapi的时候,出现utf-8报错,能够将虚拟环境中的Lib---->site package--->pip--->compat---__init__.py中的第75行return s.decode("utf-8")改成"gbk",而后uninstall coreapi,再从新安装。spa

二、将 "rest_framework"加入到INSTALLED_APPS 设置中rest

三、配置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文档

 四、restframework的serializer.Serializer

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

  

使用serializer序列化model实例:

  

咱们也能够用serializer来序列化querysets,序列化querysets的时候,咱们须要在serializer参数中加上many=True的标志

  

 

 五、ModelSerializer

  从上面的例子中能够看出来,使用Serializer在定义序列化字段的时候,写的很复杂,几乎须要把咱们的mode所有复制一遍,为了减小代码量,ModelSerializer应运而生

  一样是上面的例子,咱们用ModelSerializer来重构以下:

  

  那么 ModelSerializer到底作了什么?经过下面这几行代码,咱们能够看出来它只是经过model将字段自动关联起来了:

  from snippets.serializers import SnippetSerializer   serializer = SnippetSerializer()   print(repr(serializer))
  

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

相关文章
相关标签/搜索