rest-framework
文章平均质量分 69
豆豆orz
听一曲风声,画两道身影,说三生有幸遇见你。
展开
-
Django-restframework01 REST框架原始写法,与表单Form类似,实例
1. 创建模型(models.py)from django.db import models# 高亮文本, 两种风格from pygments.lexers import get_all_lexersfrom pygments.styles import get_all_stylesLEXERS = [item for item in get_all_lexers() if item[1]]原创 2017-11-08 15:13:05 · 1619 阅读 · 0 评论 -
Django-restframework20 Validators验证类
REST框架中的模型验证自带验证器UniqueValidatorUniqueTogetherValidatorUniqueForDateValidator UniqueForMonthValidator UniqueForYearValidator高级的字段默认值validators的局限性编写一个自定义验证函数 Validators可以在不同的字段验证时重复使用 1 REST框原创 2017-11-10 11:07:43 · 2222 阅读 · 0 评论 -
Django-restframework21 Authentication认证类
简介身份认证是怎样进行的未经授权和禁止的响应对象使用mod_wsgi部署的Apache服务的服务器用户认证指南BasicAuthenticationTokenAuthentication简介生成令牌SessionAuthenticationRemoteUserAuthentication自定义authentication三方包 权限认证类必须是可插拔的,钩子1 简介身份认原创 2017-11-10 11:08:40 · 1266 阅读 · 0 评论 -
Django-restframework22 Permissions
简介确定认证权限对象级权限Object level permissions设置权限接口指南自定义权限三方包 身份验证或标识本身通常不足以获得访问信息或代码的权限。为此,请求访问的实体必须具有授权。1 简介permissions和authentication,throttling一起,确定一个请求是否具有访问权限。 权限检查一般在请求执行到的动作之前进行检查。Permission 一原创 2017-11-10 11:09:24 · 628 阅读 · 0 评论 -
Django-restframework23 Throttling
ThrottlingTwitter API rate limiting response简介如何设置节流类设置节流策略怎样识别客户设置缓存cache接口使用指南自定义节流阀 HTTP/1.1 420让你更冷静1 Throttling(Twitter API rate limiting response)1. 简介节流(Throttling)类似于权限,因为它决定了是否应该对请求进行原创 2017-11-10 11:10:30 · 635 阅读 · 0 评论 -
Django-restframework24 Filtering(过滤器)
Filtering根据当前用户进行过滤使用requestuser通过URL过滤通过查询参数过滤Generic Filtering设置过滤后端过滤对象查找重写queryset初始化方法接口使用指南自定义通用过滤器使用示例自定义显示界面分页和模式三方包 QuerySet一般提供数据库模型中的全部实例。但是通常情况下你只需要全部对象的子集1 Filtering简单的过滤方法,原创 2017-11-10 11:11:21 · 2991 阅读 · 0 评论 -
Django-restframework25 Pagination(分页)
Pagination简介设置分页风格修改分页风格API指南PageNumberPaginationLimitOffsetPaginationCursorPagination自定义分页HTML分页控制三方包 Django提供几个类专门用于处理分页数据。意味着你的数据被切割成几页。通过Previous/Next的链接进行调用。1 Pagination1. 简介REST框架支持自定原创 2017-11-11 15:14:36 · 4220 阅读 · 0 评论 -
Django-restframework26 Versioning(版本控制)
一Versioning简介REST框架的版本控制配置版本控制方案二自定义版本模式一、Versioning1.简介API版本控制可以用来在不同的客户端使用不同的行为。REST框架提供了大量不同的版本设计。 版本控制是由传入的客户端请求决定的,并且可能基于请求URL,或者基于请求头。 有许多有效的方法达到版本控制的目的。特别是为具有多个客户的长期系统工程进行设计时,没有版本控制的系统也是可原创 2017-11-11 15:16:01 · 704 阅读 · 0 评论 -
Django-restframework27 Content negotiation(内容协议)
一Content negotiation确定渲染器二自定义内容协商协议 HTTP为‘内容协议’提供了几种机制。当存在多种表现方式可以选择时,该过程会选择最好的表现方式一、Content negotiation1.确定渲染器REST框架使用简单的内容协议方式,基于可用渲染器的优先级和客户端的Accept:请求头中所标识的,用来确定返回给客户端的媒体类型。部分由服务端驱动,部分由客户端驱动。原创 2017-11-11 15:17:33 · 414 阅读 · 0 评论 -
Django-restframework28 Metadata
一Metadata二自定义元类三三方包 OPTIONS允许客户端确定与资源相关的选项和/或需求,而无需暗示资源操作或启动资源检索。一、Metadata简介 REST框架包含一个可配置的机制,用于确定API如何响应OPTIONS可选请求。允许你返回API模式或者其他资源信息 目前还没有任何广泛采用的约定来返回HTTP OPTIONS 请求的响应样式,因此我们提供了一种特殊的样式,返回一些原创 2017-11-11 15:18:07 · 370 阅读 · 0 评论 -
Django-restframework29 Schemas(概要,模式,架构)
一内部陈述架构二添加一个模式使用get_schema_view方法get_schema_view的参数为显示指定一个SchemaView显示模式定义静态模式文件 一份机器可读的关于API接口中有哪些资源可以使用,它们的url是多少,它们是如何呈现的,以及它们支持什么操作 API架构是一种有用的工具,它允许使用实例,包括生成参考文档,或者驱动动态客户端库,这些库可以与您的API交互。原创 2017-11-11 15:18:52 · 3154 阅读 · 0 评论 -
Django-restframework30 Format suffixes(后缀格式)
一Format suffixes二查询参数格式三请求头和格式后缀一、Format suffixesWeb api的一种常见模式是在url上使用文件名扩展,以为给定的媒体类型提供端点。例如,http://example.com/api/users.json的JSON 为您的API在URLconf的每个单独条目中添加格式-后缀模式是容易出错和不干的,因此REST框架提供了将这些模式添加到您的UR原创 2017-11-11 15:19:26 · 1657 阅读 · 0 评论 -
Django-restframework31 Returning URLs
一Returning URLs简介reversereverse_lazy REST架构风格与其他基于网络的风格的主要特征是它强调组件之间的统一接口。一、Returning URLs1.简介一般,从Web API返回绝对 URI更好,例如http://example.com/foobar,而不是返回相对uri,例如/foobar。 优点: - 更明确 - 减轻 API客户端负担 -原创 2017-11-11 15:20:07 · 303 阅读 · 0 评论 -
Django-restframework31 Returning URLs
一Returning URLs简介reversereverse_lazy REST架构风格与其他基于网络的风格的主要特征是它强调组件之间的统一接口。一、Returning URLs1.简介一般,从Web API返回绝对 URI更好,例如http://example.com/foobar,而不是返回相对uri,例如/foobar。 优点: - 更明确 - 减轻 API客户端负担 -原创 2017-11-11 15:22:29 · 243 阅读 · 0 评论 -
Django-restframework32 Exceptions(异常)
一ExceptionsREST框架中视图中异常处理自定义异常处理二接口指南APIExceptionParseErrorAuthenticationFailedNotAuthenticatedPermissionDeniedNotFoundMethodNotAllowedNotAcceptableUnsupportedMediaTypeThrottledValidation原创 2017-11-11 15:23:02 · 1242 阅读 · 0 评论 -
Django-restframework33 Status Codes
一Status Codes简介Informational - 1xxSuccessful - 2xxRedirection - 3xxClient Error - 4xxServer Error - 5xxHelper functions一、Status Codes1.简介不建议在你的Response中使用裸露的状态码。REST框架包括一组命名常量,您可以使用这些常量来使更多的代码更原创 2017-11-11 15:23:31 · 303 阅读 · 0 评论 -
Django-restframework34 Testing(测试)
一Testing二APIRequestFactory创建一个测试请求强制认证强制进行CSRF验证三APIClient制造请求认证AuthenticatingCSRF validation四RequestsClient请求客户端五CoreAPIClient 没有经过测试的代码是垃圾代码一、TestingREST框架包含一些用于扩展Django的测试框架的类,改进对API请求的支原创 2017-11-12 10:44:11 · 2131 阅读 · 0 评论 -
Django-restframework19 Serializer关系型字段
简介关系型序列化字段使用指南使用示例StringRelatedFieldPrimaryKeyRelatedFieldHyperlinkedRelatedFieldSlugRelatedFieldHyperlinkedIdentityField嵌套关系创建一个具有读写操作的序列化类自定义关系型字段自定义超链接字段更多注意事项三方包 坏程序员担心代码,好程序员担心数据结构和它原创 2017-11-10 11:07:02 · 3463 阅读 · 2 评论 -
Django-restframework18 Serializer fields
核心参数read_onlywrite_onlyrequiredallow_nulldefaultsourcevalidatorserror_messageslabelhelp_textinitialstyle常用字段Boolean fields字符串字段数字字段日期字段选择字段文件上传字段复合字段其他字段三方包 序列化器的字段处理不仅会验证值(valid原创 2017-11-10 11:06:26 · 3434 阅读 · 0 评论 -
Django-restframework17 Serializer
Serializers简介使用示例创建一个对象声明一个serializer类提供序列化和反序列化方法序列化对象转化为python的原生数据类型再转化为其他格式反序列化对象首先将数据流转化为python原生数据保存实例验证访问初始数据和实例部分更新处理嵌套对象处理多个对象包含额外的上下文ModelSerializer1指定包含的字段2指定显示嵌套对象的显示深度3明确的原创 2017-11-10 11:05:33 · 1982 阅读 · 0 评论 -
Django-restframework02 rest接口新版写法
REST框架简介身份验证策略OAuth1a和OAuth2的包支持ORM和非ORM数据源的序列化可以自定义,基于功能的常规视图简单的接口写法设置settings INSTALLED_APPS = ( ... 'rest_framework', ) # 配置我们框架 REST_FRAMEWORK = { # 设置权限,原创 2017-11-08 15:13:49 · 572 阅读 · 0 评论 -
Django-restframework03 请求和响应(request和response)
1. 请求对象request扩展的对象HttpRequest核心功能, request.data属性,和request.POST类似2. 响应对象Response对象,按指定的congtent-type渲染数据,并返回给客户端3. 状态码(status)100继续请求者应当继续提出请求。服务器已收到请求的一部分,正在等待其余部分。101切换协议请求者已要求服务器切换协议,服务器已确认并准备切原创 2017-11-08 15:14:31 · 720 阅读 · 0 评论 -
Django-restframework04 基于类视图的视图函数
1. 基于类的视图函数(views.py)from snippets.models import Snippetfrom snippets.serializers import SnippetSerializerfrom django.http import Http404# APIView from rest_framework.views import APIView# 返回对象fr原创 2017-11-08 15:15:12 · 655 阅读 · 0 评论 -
Django-restframework05 用户认证和权限管理
1. 目的实例对象始终与创建者相关联只有通过身份验证的用户可以创建实例只有对象的创建者能够更新和删除该对象未认证用户应该只有只读权限2. 数据库中字段的on update 和 on delete参数数据库外键定义的可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变化规则。update则是主键表中被参考字段的值更新,delete是指在主键表中删除一条记录on_up原创 2017-11-08 15:16:14 · 651 阅读 · 1 评论 -
Django-restframework06 关系与超链接API
1. 内容为API接口创建根节点为对象的高亮显示文本创建端点为每个API创建链接确保每个url模式被命名,或者定义添加分页浏览接口之前使用主键,需要提升内聚性和可发现性2. 创建api根节点的断点# 之前我们有了snippets和users的端点,现在我们利用正则表达式和带@api_view基础视图函数创建初级的单一断点。from rest_framework.decorators原创 2017-11-08 15:17:23 · 457 阅读 · 0 评论 -
Django-restframework07 视图函数基类和路由类
1、内容重构视图函数将视图函数绑定url利用路由类view与viewsets之间的权衡 rest框架提供了ViewSets基类,让开发者得以集中精力于对API的状态和交互进行建模; ViewSets和views十分相似,除了提供如read,update等方法,而不是get或put; ViewSet类使用Router类处理复杂的url.2、利用ViewSets进行重构第一步:重构Use原创 2017-11-08 15:18:12 · 355 阅读 · 0 评论 -
Django-restframework08 模式和客户端库
1. 内容核心API添加一个模式利用命令行客户端客户端认证回顾我们之前的工作2. 核心API提供架构支持,使用Core API Core API简介 1. 用于表示Web API的与格式无关的文档对象模型。 2. 可以用于表示模式或超媒体响应,并允许您在应用程序界面层而不是网络接口与API进行交互 3. Core API目前具有可用于Core JSON,Open API / Sw原创 2017-11-09 10:40:55 · 300 阅读 · 0 评论 -
Django-restframework09 Request对象
REST框架的Request类扩展了标准的HttpRequest,增加了对REST框架的灵活解析和请求认证1. Request方法允许以与处理表单数据相同的方式处理JSON数据或其他媒体类型的请求 - .data(数据) request.data返回请求正文的解析内容,类似标准对象中的request.POST and request.FILES,除了以下几点: 1. 包括所有的解析内容,如文件原创 2017-11-09 10:41:49 · 387 阅读 · 0 评论 -
Django-restframework10 Response对象
1. 简介和基本的HttpResponse objects不同,TemplateResponse objects会保存视图函数计算出来的响应上下文,最终输出的响应对象在需要时才会被计算REST框架提供一个Response对象以支持HTTP内容协商,Response依据客户端各种request.content_type提供相应的媒体类型没有要求必须使用Response,也可以使用HttpResp原创 2017-11-09 10:42:50 · 1183 阅读 · 0 评论 -
Django-restframework11 APIView
1. APIView与View的区别APIView是View的子类传递给请求处理程序的request实例是REST框架的请求实例,而不是Django的HttpRequest实例处理程序返回的基于REST框架的Response,而不是Django的HttpResponse,视图函数将会管理内容协商,然后设置正确的渲染方式任何APIException将会被捕捉,然后转换成合适的response对原创 2017-11-09 10:43:40 · 2739 阅读 · 0 评论 -
Django-restframework12 Generic views
1.引语 Django的通用视图已经发展成一种常见的使用模式的快捷方式,他们采取在视图开发中发现一些常见习语和模式,并将其抽象出来,以便于可以快速编写数据的常见视图,而不需要重复编写。 2.简介基于类的视图允许自由设计组合可重用的模式,REST框架通过提供许多常用模式的预构建视图来利用这一点,如RETIRVEUPDATEAPIVIEW等REST提供的通用视图可以快速构建与数据库模型紧密对原创 2017-11-09 10:45:30 · 1254 阅读 · 1 评论 -
Django-restframework13 ViewSets
1.简介路由系统是用于接收合适的请求,然后返回相应的响应REST框架允许将一系列相关的业务逻辑函数写在一起,称为ViewSet.在其他框架中,相似的实现也被称为’Resources’或者’Controllers’.一个ViewSet类也是一个基础的View类,不提供任何请求处理函数,如get或post,只提供类似list和created这样的方法一个ViewSet类,通过.as_view()原创 2017-11-09 10:46:17 · 1918 阅读 · 1 评论 -
Django-restframework14 路由类Router(冲突)
1.作用快速为一个‘资源’比较多的视图类声明所有普通路由。2.用法使用SimpleRouterfrom rest_framework import routersrouter = routers.SimpleRouter()router.register(r'users', UserViewSet)router.register(r'accounts', AccountViewSet)urlp原创 2017-11-09 10:47:19 · 1781 阅读 · 0 评论 -
Django-restframework14(下) 路由类Router
1.作用快速为一个‘资源’比较多的视图类声明所有普通路由。2.用法使用SimpleRouterfrom rest_framework import routersrouter = routers.SimpleRouter()router.register(r'users', UserViewSet)router.register(r'accounts', AccountViewSet)urlp原创 2017-11-09 10:48:47 · 8253 阅读 · 1 评论 -
Django-restframework15 Parser
机器与机器之间的网络交互倾向于使用更加复杂的结构化的数据,而不是简单的表单数据1.Parser对象 REST框架提供了一系列的内建Parser对象来对不同的媒体类型进行解析,也支持为API接口灵活的自定义Parser如何选择合适的Parser通常为一个viewset定义一个用于解析的Parser对象列表 当接收到request.data时,REST框架首先检查请求头的Content-Typ原创 2017-11-09 10:49:33 · 1369 阅读 · 0 评论 -
Django-restframework16 Render
如何决定使用什么渲染器设置渲染器渲染器顺序渲染器指南JSONRendererTemplateHTMLRendererStaticHTMLRendererBrowsableAPIRenderer定制BrowsableAPIRendererAdminRendererHTMLFormRendererMultiPartRenderer自定义renderers高级渲染器使用设计自己原创 2017-11-10 11:04:27 · 891 阅读 · 0 评论 -
Django-restframework35 Settings
一Settings二接口指南API策略设置通用视图设置版本控制认证设置测试设置模式生成控制内容协议控制日期时间格式编码视图名字和描述HTML中下拉框中选项数量限制其他设置 名称空间是一个伟大的想法——让我们做更多!一、SettingsREST框架的配置在一个名为REST_FRAMEWORK的Django设置中。REST_FRAMEWORK = { 'DEFAUL原创 2017-11-12 10:45:44 · 1225 阅读 · 0 评论