关键词:
一、请求对象
1、重新封装了原request。
2、request._request:原request对象。
3、request.data:前端post过来的三种编码格式的数据,都可以从中取出。
4、request.query_params:url携带的参数,相当于原来的request.GET。
5、request.FILES:文件数据。
二、响应对象
1、通过Response()实例化的对象,可以传入相应参数。
2、data:返回的主体数据,字典形式。
3、status:返回的状态码,默认为200。
①在rest_framework.status.py中,所有状态码都定义为了常量。
4、template_name:自定义的模板文件名,不常用。
5、headers:响应头,可以以字典形式传入数据,会添加进响应头中。
6、content_type:响应的编码格式,application/json和text/html。
7、响应式布局:浏览器响应成浏览器的格式,postman响应成json格式,是通过默认配置实现的,可以通过项目配置(全局修改)覆盖默认配置,也可以在视图类中局部配置(优先级最高),若只保留json渲染器,则浏览器也会响应成json格式。
①全局配置,项目的setting.py中书写:
# 如此配置与默认配置相同 REST_FRAMEWORK = ‘DEFAULT_RENDERER_CLASSES‘: ( ‘rest_framework.renderers.JSONRenderer‘, # json渲染器 ‘rest_framework.renderers.BrowsableAPIRenderer‘, # 浏览API渲染器 )
②局部配置,视图类中书写:
from rest_framework.renderers import JSONRenderer, BrowsableAPIRenderer renderer_classes = (JSONRenderer, BrowsableAPIRenderer)
drf序列化器之请求响应以及视图(代码片段)
1.http请求处理drf除了在数据序列化部分简写代码以外,还在视图中提供了简写操作。所以在django原有的django.views.View类基础上,drf封装了多个视图子类出来提供给我们使用。DjangoRESTframwork提供的视图的主要作用:控制序列化器的... 查看详情
05drf源码剖析之认证(代码片段)
...器与API进行交互时,我们可以登录,然后浏览器会话将为请求提供所需的身份验证。如果我们以编程方式与API进行交互,则需要在每个请求上显式提供身份验证凭据。如果我们尝试在不进行身份验证的情况下创建代码段,则会收... 查看详情
drf请求与响应(代码片段)
1请求和响应1.1RequestRESTframework传入视图的request对象不再是Django默认的HttpRequest对象,而是RESTframework提供的扩展了HttpRequest类的Request类的对象。RESTframework提供了Parser解析器,在接收到请求后会自动根据Content-Type指明的请求数据类... 查看详情
06drf源码剖析之权限(代码片段)
...权限简述权限与身份验证和限制一起,决定了是否应授予请求访问权限。权限检查始终在视图的最开始处运行,然后再允许执行其他任何代码。权限检查通常会使用request.user和request.auth属性中的身份验证信息来确定是否应允许传... 查看详情
drf之解析器组件及序列化组件(代码片段)
...我们已经有了一个共识,Django无法处理application/json协议请求的数据,即,如果用户通过application/json协议发送请求数据到达Django服务器,我们通过request.POST获取到的是一个空对象。 DjangoRestFramework帮助我们实现了处理application/... 查看详情
drf请求与响应(代码片段)
目录一请求与响应1.1Request1.1.1.1常用属性1).data2).query_params1.2Response1.1.2.1构造方式1.1.2.2常用属性1).data2).status_code3).content1.1.2.3状态码1)信息告知-1xx2)成功-2xx3)重定向-3xx4)客户端错误-4xx5)服务器错误-5xx二视图2.2视图2.2.... 查看详情
drf之rest规范介绍及view请求流程分析(代码片段)
...和算法的结合,而在Web类型的App中,我们对于数据的操作请求是通过url来承载的,本文详细介绍了REST规范和CBV规范和CBV请求流程。 编程即数据结构和算法的结合。简单的程序可能不需要跟用户交互数据,但是现代的应用程... 查看详情
drf框架之用户登录状态保持(代码片段)
...们的应用提供了用户名和密码进行用户认证,那么下一次请求时,用户还是要再一次进行用户认证才行。 因为根据HTTP协议的无状态性,在下一次请求时我们并不知道是哪个用户发出的请求,所以为了让我们能识别是哪个 查看详情
drf框架之路由routers(代码片段)
对于视图集,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。RESTframework提供了两个routerSimpleRouterDefaultRouter1.使用方法:1.创建路由对象#定义一个路由器对象rout... 查看详情
drf之文档生成和jwt(代码片段)
...频率类,需要写两个方法 -#判断是否限次:没有限次可以请求True,限次了不可以请求False defallow_request(self,re 查看详情
drf之视图组件(代码片段)
...ST的最重要的一句话,那就是:url用来唯一定位资源,http请求方式用来定位用户行为。根据这句话,我们设计了下面的RESTfulapi:相关知识点二:混入类、多继承我有一个Animal类,它包含如下方法:classAnimal(obje 查看详情
drf-解析器组件(代码片段)
...引入DjangoRestFramework帮助我们实现了处理application/json协议请求的数据,另外,我们也提到,如果不使用DRF,直接从request.body里面拿到原始的客户端请求的字节数据,经过decode,然后json反序列化之后,也可以得到一个Python字典类型... 查看详情
django(63)drf权限源码分析与自定义权限(代码片段)
前言上一篇我们分析了认证的源码,一个请求认证通过以后,第二步就是查看权限了,drf默认是允许所有用户访问 权限源码分析源码入口:APIView.py文件下的initial方法下的check_permissionsdefcheck_permissions(self,request):"""检查是否应... 查看详情
drf框架之自定义action(代码片段)
一、自定义action使用action装饰器methods支持的请求方式,为一个列表,默认为[‘get‘]detail必传参数,要处理的是否是详情资源对象(即是否通过url路径获取主键)True表示需要传递主键id,使用通过URL获取的主键对应的数据对象Fal... 查看详情
drf08(代码片段)
...继承APIView类,也只有APIView类中才有dispatch方法,所以所有的请求都要经过三大认证,认证通过后执行相应请求的视图函数defdispatch(self,request,*args,**kwargs):"..."try:#三大认证self.initial(request,*args,**kwargs)"..."exceptExceptionasexc:#... 查看详情
djangodrf源码分析之三大认证(代码片段)
...要来谈谈认证模块中的三大认证,首先我们先回顾一下DRF请求的流程:前台发送请求,后台接受,进行urls.py中的url匹配,执行对应类视图调用as_view()方法fromdjango.conf.urlsimporturlfrom.importviewsurlpatterns=[url 查看详情
drf之jwt补充(代码片段)
DRF之JWT补充1.JWT控制用户登录后才能反问,匿名用户无法访问classQueryUserView(GenericViewSet,RetrieveModelMixin):"""查询接口"""queryset=User.objects.all()serializer_class=UserSerializerpk=None#thrott 查看详情
drf之渲染(代码片段)
实例:#路由fromdjango.conf.urlsimporturl,includefromapp01.viewsimportTestViewurlpatterns=[url(r'^test/$',TestView.as_view()),url(r'^test.(?P<format>[a-z0-9]+)',TestView.as_view()),]# 查看详情