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的更多相关文章

  1. Django rest framework 基础

    01: Django rest framework 基础 ​ ​ 1.1 什么是RESTful 1. REST与技术无关,代表的是一种软件架构风格(REST是Representational Stat ...

  2. Django REST framework基础:视图和路由

    DRF中的Request 在Django REST Framework中内置的Request类扩展了Django中的Request类,实现了很多方便的功能--如请求数据解析和认证等. 比如,区别于Dj ...

  3. Django Rest framework基础使用之View:APIView, mixins, generic, viewsets

    先看一张图,对DRF的各个APIView,Mixin,Viewset等有个基本印象: 具体使用方法: 1.APIView: DRF 的API视图 有两种实现方式: 一种是基于函数的:@api_view ...

  4. Django Rest framework基础使用之Request/Response

    1.Request restframework提供了一个Request对象(rest_framework.request.Request) Request对象继承了Django默认的HttpReque ...

  5. 01: Django rest framework 基础

    1.1 RESTful API设计规范 参考地址: http://www.cnblogs.com/wupeiqi/articles/7805382.html   1.API与用户的通信协议,总是使用H ...

  6. Django Restful Framework (一): Serializer

    Serializer 允许复杂数据(比如 querysets 和 model 实例)转换成python数据类型,然后可以更容易的转换成 json 或 xml 等.同时,Serializer也提供了反序 ...

  7. Django REST framework基础:解析器和渲染器

    解析器 解析器的作用 解析器的作用就是服务端接收客户端传过来的数据,把数据解析成自己可以处理的数据.本质就是对请求体中的数据进行解析. 在了解解析器之前,我们要先知道Accept以及ContentTy ...

  8. Django REST framework基础:认证、权限、限制

    认证.权限和限制 身份验证是将传入请求与一组标识凭据(例如请求来自的用户或其签名的令牌)相关联的机制.然后 权限 和 限制 组件决定是否拒绝这个请求. 简单来说就是: 认证确定了你是谁 权限确定你能不 ...

  9. Django REST framework基础:分页

    DRF分页组件 为什么要使用分页 我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输 ...

随机推荐

  1. PyCharm 专业版激活方法

    郑重声明: JetBrains公司的PyCharm专业版是收费的,本文所述激活方法仅限于短时内体验和试用PyCharm专业版,使用后请当天立即删除.若需要继续使用PyCharm专业版,请在官网购买.当 ...

  2. Microsoft SQL Server 17导出xlsx文件时报错:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)

    导出数据时报错: 如果你是导出office 2007格式 TITLE: SQL Server Import and Export Wizard ---------------------------- ...

  3. python高级(2)—— 基础回顾2

    回顾知识 一 操作系统的作用: 隐藏丑陋复杂的硬件接口,提供良好的抽象接口 管理.调度进程,并且将多个进程对硬件的竞争变得有序 关于操作系统的发展史,可以参考我之前的一篇博文:传送门 二 多道技术: ...

  4. EF Code First列名 'Discriminator' 无效的问题

    新建了一个类继承EF  Model类,运行报错 EF Code First列名 'Discriminator' 无效 EF会把项目中在DbContext中引用的所有的Model类及这些Model类对应 ...

  5. Python PEP-8编码风格指南中文版

    #PEP 8 – Python编码风格指南 PEP: 8 Title: Style Guide for Python Code Author: Guido van Rossum , Barry War ...

  6. Java循环语句怎么用?经典排序算法见真知

    Java中循环语句的使用,莫过于在排序算法中使用得最为经典. 排序算法非常的多,不过大体可以分为两种: 一种是比较排序,主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等. 另一种是非 ...

  7. 序列对象(bytearray, bytes,list, str, tuple)

    列表: L.append(x) # x追加到L尾部 L.count(x) # 返回x在L中出现的次数 L.extend(m) # Iterable m的项追加到L末尾 L += m # 功能同L.ex ...

  8. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(一)转载自码农网

    CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...

  9. Pandas 处理丢失数据

    处理丢失数据 import pandas as pd from pandas import Series, DataFrame import numpy as np 有两种丢失数据: 1. None ...

  10. 什么是数据库ACID?

    原子性:由于操作失败导致的数据碎片错误: 一致性:由于并发导致的数据库数据错误(与预期不一致): 隔离性:由于并发导致的当前使用数据(应用端)错误: 事务在当今的企业系统无处不在,即使在高并发环境下也 ...