drf路由与认证】的更多相关文章

目录 一.路由 1 没有继承视图集的视图类 2 继承了视图集的视图类 3 继承自ModelViewSet的路由写法(自动生成) 二.认证 1 drf认证的源码分析 2 自定义认证类的使用 一.路由 三种路由配置 1 没有继承视图集的视图类 # urls.py path('books4/', views.Book4View.as_view()), re_path('books4/(?P<pk>\d+)', views.Book4DetailView.as_view()) 2 继承了视图集的视图类…
目录 drf路由分发配置 解析模块配置 渲染模块配置 浏览器渲染打开 浏览器渲染关闭 结论 drf使用后台admin drf序列化模块 serializers.py: views.py:单查群查 测试: 连表操作 配置图片和性别 drf路由分发配置 主路由: from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.ur…
自定义token认证 我们知道,在django项目中不管路由以及对应的视图类是如何写的,都会走到 dispatch 方法,进行路由分发, 在阅读 APIView类中的dispatch 方法的源码中,有个 self.initial(request, *args, **kwargs),可以发现认证.权限.频率这三个默认组件都在这个方法里面,如果我们自己没有定义这三个组件的配置,那么就会使用源码中默认的一些配置. 源码: # Ensure that the incoming request is pe…
1. 什么是drf 框架的认证组件: auth 就等于是jango中的Auth模块,Auth是自带session信息,但是 drf的认证组件可以自定义token携带过去,去判断用的 2.如何实现认证呢? from rest_framework.authentication import BaseAuthentication from app01 import models from rest_framework.exceptions import AuthenticationFailed cla…
0909自我总结 drf框架中认证与权限工作原理及设置 一.概述 1.认证 工作原理 返回None => 游客 返回user,auth => 登录用户 抛出异常 => 非法用户 前台对于用户信息进行的判断 1)如果前台没有携带认证信息,直接定义为游客 2)如果前台携带了认证信息并认证通过,定位为登录用户,将登录的用户user对象保存在 requset.user 中 3)如果前台携带了认证信息但没有认证通过,一般都定义为游客 4 ) 可以自定义为非法用户,抛出 认证失败 异常,但是不建议直…
DRF框架的认证组件 核心代码:       self.perform_authentication(request)  框架自带模块:    from rest_framework import authentication 认证组件的返回值:request.user 自定义的认证组件的钩子方法authenticator.authenticate(self) :返回值是元组(user,auth) from rest_framework import authentication from re…
目录 DRF的三大认证组件 认证组件 工作原理 实现 权限组件 工作原理 实现 频率组件 工作原理 实现 三种组件的配置 DRF的三大认证组件 认证组件 工作原理 首先,认证组件是基于BaseAuthentication类,并重写authenticate方法. 其认证的规则大概分三个方面: 如果没有携带认证信息(token),直接返回None,也就是判定登录为游客登录 如果携带有认证信息,但是校验失败,则会抛出异常,这种情况通常为非法用户,爬虫就属于这一类 如果有认证信息,且通过校验能够查到数据…
Django Rest Framework 版本控制组件 DRF的版本 版本控制是做什么用的, 我们为什么要用 首先我们要知道我们的版本是干嘛用的呢~~大家都知道我们开发项目是有多个版本的~~ 当我们项目越来越更新~版本就越来越多~~我们不可能新的版本出了~以前旧的版本就不进行维护了~~~ 那我们就需要对版本进行控制~~这个DRF也给我们提供了一些封装好的版本控制方法~~ 版本控制怎么用 之前我们学视图的时候知道APIView,也知道APIView返回View中的view函数,然后调用的disp…
参考文档: Django REST framework基础:版本控制 Django REST framework基础:认证.权限.限制 为什么要有版本? 某些客户端 使用低版本只维护不开发新功能 v1 主要的产品还要不断的更新迭代功能 v2 DRF中版本 DRF使用版本控制 /books/?version=v1  是在 URL加查询参数 /v1/books/ 全局配置:  路由配置:  源码分析 进阶:request.version都经历了什么?  版本控制能做什么?   认证 你是…
版本控制  -- # 初始化我们的版本   version, scheme = self.determine_version(request, *args, **kwargs)   request.version, request.versioning_scheme = version, scheme  --  def determine_version(self, request, *args, **kwargs):    if self.versioning_class is None:  …