Django Rest framework基础使用之 serializer
rest-framework文档地址:http://www.django-rest-framework.org/
Django Rest framework是一个非常强大且灵活的工具包,用于构建web API
选择rest framework的理由:
1)在线可视的API
2)验证策略涵盖了OAuth1a和OAuth2
3)同时支持ORM(对象关系映射)和非ORM数据源的序列化
4)大量文档及强大社区支持
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的更多相关文章
- Django rest framework 基础
01: Django rest framework 基础 1.1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational Stat ...
- Django REST framework基础:视图和路由
DRF中的Request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别于Dj ...
- Django Rest framework基础使用之View:APIView, mixins, generic, viewsets
先看一张图,对DRF的各个APIView,Mixin,Viewset等有个基本印象: 具体使用方法: 1.APIView: DRF 的API视图 有两种实现方式: 一种是基于函数的:@api_view ...
- Django Rest framework基础使用之Request/Response
1.Request restframework提供了一个Request对象(rest_framework.request.Request) Request对象继承了Django默认的HttpReque ...
- 01: Django rest framework 基础
1.1 RESTful API设计规范 参考地址: http://www.cnblogs.com/wupeiqi/articles/7805382.html 1.API与用户的通信协议,总是使用H ...
- Django Restful Framework (一): Serializer
Serializer 允许复杂数据(比如 querysets 和 model 实例)转换成python数据类型,然后可以更容易的转换成 json 或 xml 等.同时,Serializer也提供了反序 ...
- Django REST framework基础:解析器和渲染器
解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...
- Django REST framework基础:认证、权限、限制
认证.权限和限制 身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制.然后 权限 和 限制 组件决定是否拒绝这个请求. 简单来说就是: 认证确定了你是谁 权限确定你能不 ...
- Django REST framework基础:分页
DRF分页组件 为什么要使用分页 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输 ...
随机推荐
- Cygwin下编译的程序不使用Cygwin.dll即可运行的命令 及常用命令简介
cc -mno-cygwin foo.c 1.$ ps PS的相关用法: QuoteUsage ps [-aefl] [-u uid]-f = show process uids, ppids-l = ...
- Linux 中yum的配置
1.进入yum的路径 cd /etc/yum.repos.d 2.将原始的repo文件移入一个新建的backup文件下做备份 mv CentOS* backup 3.在/etc/yum.repos.d ...
- iis 限制动态IP地址访问次数
An IP Address Blocking HttpModule for ASP.NET in 9 minutes namespace YourModuleNameHere 10 { 11 publ ...
- SSM框架—环境搭建(MyEclipse+Tomcat+MAVEN+SVN)
1.JDK的安装 首先下载JDK,这个从sun公司官网可以下载,根据自己的系统选择64位还是32位,安装过程就是next一路到底.安装完成之后当然要配置环境变量了. 1.1新建变量名:JAVA_HOM ...
- SpringBoot集成spring-data-jpa注入Bean失败
当项目结构正常(spring管理的Bean在SrpingBoot启动类平级或下级,支持spring扫描时),实现类上加 @Service注解,在实现类中注入dao层的Bean时,项目无法启动,无法找到 ...
- SpringBoot实现热部署(修改class不需要重启)
热部署: devtools可以实现页面热部署(即页面修改后会立即生效, 这个可以直接在application.properties文件中配置spring.thymeleaf.cache=false来实 ...
- stored information about method csdn
Eclipse编译时保留方法的形参 Window -> Preferences -> Java -> Compiler. 选中Store information about meth ...
- 从零开始的cve分析- cve-2016-0095 简易记录
0x00 前言 看k0shl大佬的SSCTF pwn450 Windows Kernel Exploitation Writeup一文,试着写一个x64下的poc. poc地址:https://git ...
- 《软工实践》第零次作业 - 一些QA
<软工实践>第零次作业 - 一些QA Q&A (1)回想一下你初入大学时对计算机专业的畅想 当初你是如何做出选择计算机专业的决定的? 你认为过去两年中接触到的课程是否符合你对计算机 ...
- [CQOI2018]异或序列
嘟嘟嘟 前缀和+莫队. 先用前缀和预处理异或,于是问题变成了在\([L - 1, R]\)中求两个数异或等于\(k\)的数对个数. 然后就离线排序,按套路维护两个指针加加减减,并维护一个桶,每一次加\ ...