Django Rest FrameWork

、Requests 请求
客服端发送给服务器的请求
、Responses 响应
rest框架支持响应不同格式的内容
、Views 视图
base基础类视图
将传入的请求调度到适当的处理程序方法,可以在控制API策略的各个方面的类上设置许多属性
、Generic views 一般视图
Django的视图...被开发为常见使用模式的快捷方式...他们采取在视图开发中发现的一些常见习语和模式,并将其抽象出来,以便您可以快速编写数据的常见视图,而无需重复。基于类视图的主要优点之一是它们允许您组合可重用行为的方式。REST框架通过提供许多提供常用模式的预构建视图来利用这一点。
、Viewsets 视图集
ViewSet类只是一种类型的基于类的视图,即不提供任何方法的处理程序,例如.get()或.post(),而是提供操作,如.list()和.create()。
、Routers 路由器
REST框架增加的一种对Django自动URL路由的支持,并为您提供了一种简单,快速和一致的方式将视图逻辑连接到一组URL。
、Parsers 解析器
REST框架包括一些内置的Parser类,允许您接受各种媒体类型的请求。还支持定义自己的自定义解析器,这使您可以灵活地设计API接受的媒体类型。
、Renderers 渲染器
REST框架包括许多内置的Renderer类,它们允许您使用各种媒体类型返回响应。还支持定义您自己的自定义渲染器,这使您可以灵活地设计自己的媒体类型。
、Serializers 序列器/串行器
允许诸如查询集和模型实例复杂的数据转换为可随后被容易地呈现到机Python数据类型JSON,XML或其他内容类型。序列化器还提供反序列化,允许解析的数据在首次验证传入的数据后被转换成复杂类型。
、Serializers fields 序列器/串行器字段
Form类中的每个字段不仅用于验证数据,还负责“清理”它 - 将其规范化为一致的格式。
序列化器字段处理原始值和内部数据类型之间的转换。它们还处理验证输入值,以及检索和设置其父对象的值。注意:序列化程序字段已声明fields.py,但按照惯例,您应该使用from rest_framework import serializers引用它们并引用字段serializers.<FieldName>。
、Serializers序列器/串行器关系
关系字段用于表示模型关系。它们可以应用到ForeignKey,ManyToManyField和OneToOneField关系,以及扭转的关系,以及自定义关系等GenericForeignKey。
、Validators 验证器
大多数时候,您正在处理REST框架中的验证,您只需依靠默认字段验证,或在序列化器或字段类上编写显式验证方法。
但是,有时候,您需要将验证逻辑放置在可重用的组件中,以便在整个代码库中轻松重用。这可以通过使用验证器函数和验证器类来实现。
、Authentication 认证
认证是将传入请求与一组标识凭证相关联的机制,例如请求来自的用户或与其签名的令牌。然后,权限和限制策略可以使用这些凭据来确定是否应允许该请求。
REST框架提供了许多开箱即用的身份验证方案,并且还允许您实现自定义方案。
验证始终在视图的最开始运行,在执行权限和限制检查之前,以及在允许继续执行任何其他代码之前。
、Permissions 权限
身份验证或身份证明本身通常不足以获取信息或代码。为此,请求访问的实体必须具有授权。连同认证和限制,权限决定是否应该授予请求或拒绝访问。
在允许继续执行任何其他代码之前,权限检查始终在视图的开始处运行。权限检查通常将使用request.user和request.auth属性中的身份验证信息来确定是否应允许传入请求。
权限用于授予或拒绝将不同类别的用户访问到API的不同部分。
最简单的权限是允许访问任何经过身份验证的用户,并拒绝访问任何未经身份验证的用户。这对应IsAuthenticated于REST框架中的类。
稍微严格的权限风格将是允许对经过身份验证的用户的完全访问,但允许对未经身份验证的用户的只读访问。这对应IsAuthenticatedOrReadOnly于REST框架中的类。
、Throttling 节流控制阀门
限制类似于权限,因为它确定是否应授权请求。Throttles表示临时状态,用于控制客户端可以对API做出的请求的速率。
、Filtering 过滤
REST框架的通用列表视图的默认行为是返回模型管理器的整个查询集。通常,您将希望您的API限制查询器返回的项目。
过滤子视图的任何视图的查询的最简单的方法GenericAPIView是覆盖该.get_queryset()方法。
覆盖此方法允许您以多种不同的方式自定义视图返回的查询集。
、Pagination 分页
Django提供了几个类,可以帮助您管理分页数据,也就是说,分割成几页的数据与“上一个/下一个”链接。REST框架包括支持可定制的分页样式。这允许您修改将多大的结果集拆分为单独的数据页面。
、Versionning 版本
API版本控制允许您更改不同客户端之间的行为。REST框架提供了许多不同的版本控制方案。
版本控制由传入的客户端请求确定,可以基于请求URL,也可以基于请求头。也就是当你的API需要更改时,又不能覆盖之前的API,只能用不同版本来区别新旧API让用户有选择的升级。
、Content negotiation 内容协商
内容协商是根据客户端或服务器首选项选择多个可能的表示之一以返回给客户端的过程。REST框架使用简单的内容协商风格来确定哪些媒体类型应该返回给客户端,基于可用的渲染器,每个渲染器的优先级以及客户Accept:头。所使用的风格部分是客户驱动的,部分是服务器驱动的。内容协商的作用简单说就是客户端可以通过Content-type头告诉服务器它的数据是什么媒体类型,它可以接收什么数据类型。
、Metadata 元数据
REST框架包括一个可配置的机制,用于确定API如何响应OPTIONS请求。这允许您返回API模式或其他资源信息。,模型元数据是“任何不是字段的数据”,比如排序选项(ordering),数据库表名(db_table)或者人类可读的单复数名称(verbose_name 和verbose_name_plural)。在模型中添加class Meta是完全可选的,所有选项都不是必须的。
、Schemas 架构
机器可读[schema]描述了通过API可以获得哪些资源,它们的URL是什么,它们如何被表示以及它们支持哪些操作。
、Format suffixes 格式化后缀
Web API的一个常见模式是使用URL上的文件扩展名为给定的媒体类型提供端点我们的响应,不再硬性绑定在,某一种返回格式上,利用这点优势,我们可以为API端,添加格式的后缀。使用格式后缀,可以定制我们的URLs,使它明确的指向指定的格式,这意味着,我们的API可以处理一些URLs,类似这样的格式 http://example.com/api/items/4/.json 。
、Returning URLS 返回URLS
将REST架构风格与其他基于网络的风格区分开来的核心功能是强调组件之间的统一接口。通常来说,最好从Web API返回绝对URI,比如http://example.com/foobar返回相对URI /foobar。
这样做的好处是:
它更明确
它为您的API客户端减少了工作。
当在不具有本机URI类型的表示形式(如JSON)中找到字符串的含义时,没有歧义。
它可以使用超链接进行标记HTML表示等操作变得容易。
、Exceptions 例外异常处理
REST框架的视图处理各种异常,并处理返回适当的错误响应。在每种情况下,REST框架将返回具有适当状态代码和内容类型的响应。响应的主体将包括关于错误性质的任何其他细节。
、Status codes 状态码
status模块中包含的完整的HTTP状态代码。
该模块还包括一组帮助函数,用于测试状态代码是否在给定范围内。
、Testing 测试
REST框架包括一些扩展Django现有测试框架的帮助类
、Settings 设置
Django Rest 框架的一些配置
---------------------

Django Rest FrameWork 全部API的更多相关文章

  1. Django REST framework 之 API认证

    RESTful API 认证 和 Web 应用不同,RESTful APIs 通常是无状态的, 也就意味着不应使用 sessions 或 cookies, 因此每个请求应附带某种授权凭证,因为用户授权 ...

  2. 快用Django REST framework写写API吧

    Django默认是前后端绑定的,提供了Template和Form,现在流行前后端分离项目,Python大佬坐不住了,于是便有了Django REST framework:https://github. ...

  3. 15 Django REST Framework 给api添加自定义搜索条件

    一.ListModelMixin源码 # 源码 class ListModelMixin(object): """ List a queryset. "&quo ...

  4. Django REST framework 数据处理api

    一.url分发 以防有其他业务线的需要,导致url杂乱,将每个app用到的url都设置在自己的应用中. # 项目下的url url(r"^api/(?P<version>\w+) ...

  5. Django Rest Framework API指南

    Django Rest Framework API指南 Django Rest Framework 所有API如下: Request 请求 Response 响应 View 视图 Generic vi ...

  6. 用Django Rest Framework和AngularJS开始你的项目

    Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...

  7. Getting Started with Django Rest Framework and AngularJS

    转载自:http://blog.kevinastone.com/getting-started-with-django-rest-framework-and-angularjs.html A ReST ...

  8. 利用 Django REST framework 编写 RESTful API

    利用 Django REST framework 编写 RESTful API Updateat 2015/12/3: 增加 filter 最近在玩 Django,不得不说 rest_framewor ...

  9. Django REST Framework API Guide 06

    本节大纲 1.Validators 2.Authentication Validators 在REST框架中处理验证的大多数时间,您将仅仅依赖于缺省字段验证,或在序列化器或字段类上编写显式验证方法.但 ...

随机推荐

  1. mapStateToProps,mapDispatchToProps的使用姿势

    本文作者:IMWeb 黄qiong 原文出处:IMWeb社区 未经同意,禁止转载 前言 刚接触redux的时候,发现大家对mapDispatchToProps使用有几种方法,而且都跑通了,本文来介绍下 ...

  2. http和WebSocket

    有关http和WebSocket 的区别网上有很多的质料. 个人在此仅仅是记录以下自己的学习心得,自己的理解. 1. http协议是用在应用层的协议,他是基于tcp协议的,http协议建立链接也必须要 ...

  3. SQL脚本去重分组统计

    需求:首先有一张表记录学生姓名.科目和成绩,然后模拟插入几条数据,脚本如下: create table score ( Name ),--姓名 subject ),--科目 grade int--成绩 ...

  4. spring boot 2.0 + 静态资源被拦截,怎么办?

    问题描述:使用springboot 2.0后,按照springboot 1.5版本(以下简称旧版)的方式去配置项目.结果发现静态资源访问不到了,本文对此情况分析.处理 项目结构: 直接上图 如果是在旧 ...

  5. php--------获取当前时间、时间戳

    首先需要知道的是在php中获取时间方法是date(),在php中获取时间戳方法有time().strtotime().下面分别说明. date() 格式为:date($format, $timesta ...

  6. Spring Boot 文档

    本节对 Spring Boot 的参考文档做了一个简单概述.本章节对全文的参考手册进行内容上的一些索引. 你可以参考本节,从头到尾依次阅读该文档,也可以跳过不感兴趣的内容. Spring Boot 参 ...

  7. 我的Java学习笔记-Java面向对象

    今天来学习Java的面向对象特性,由于与C#的面向对象类似,不需详细学习 一.Java继承 继承可以使用 extends 和 implements 这两个关键字来实现继承. extends:类的继承是 ...

  8. LeetCode 48. Rotate Image My Submissions Question (矩阵旋转)

    题目大意:给一个矩阵,将其按顺时针旋转90°. 题目分析:通法是先将矩阵转置,然后再反转每一行,或者是先反转每一列,然后再将其转置.I just want to say"It's amazi ...

  9. ASP.NET简介

    1.什么是ASP.NET? ASP.NET是一套免费的网络架构,是为了构建一个伟大的或者说非常不错的网站或网络应用,并同时使用了一些前端技术,比如说HTML,CSS和JavaScript ASP.NE ...

  10. OAF 标准的供应商管理员批准流程

    标准供应商审批流程 oracle.apps.pos.onboard.webui.FlexRegApproverPGCO--初始化poplist LinkedList actionListText = ...