Django-rest framework框架的三大认证组件
源码分析:三大认证组件的封装
组件的认证配置:

模型层:models.py
class User(BaseModel):
username = models.CharField(verbose_name='用户名', max_length=32)
password = models.CharField(verbose_name='密码', max_length=64) class Car(BaseModel):
name = models.CharField(verbose_name='汽车品牌', max_length=32)
price = models.DecimalField(verbose_name='价格', max_digits=11, decimal_places=2, default=1.00)
序列化层:serializer.py
from rest_framework import serializers
from . import models
class UsersModelSerializer(serializers.ModelSerializer):
class Meta:
model = models.User
fields = ('username', 'password')
extra_kwargs = {} class CarsModelSerializer(serializers.ModelSerializer):
class Meta:
model = models.Car
fields = ('name', 'price')
extra_kwargs = {}
路由层:urls,.py
from django.conf.urls import url, include
from . import views
urlpatterns = [
url(r'^users/(?P<pk>\d+)/', views.UsersRetrieveAPIView.as_view()), url(r'^cars/$', views.CarsGenericViewSet.as_view({'get': 'list'})),
url(r'^cars/(?P<pk>\d+)/', views.CarsGenericViewSet.as_view({'get': 'retrieve'})),
]
视图层:views.py
from rest_framework import generics, viewsets, mixins
from . import models, serializers # 局部禁用:视图类中 authentication_classes 字段可以完成局部控制
class UsersRetrieveAPIView(generics.RetrieveAPIView):
# 局部解除认证
authentication_classes = ()
queryset = models.User.objects.filter(is_delete=False)
serializer_class = serializers.UsersModelSerializer from . import authentication
class CarsGenericViewSet(mixins.RetrieveModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet):
# 局部完成禁用
authentication_classes = (authentication.TokenAuthentication, )
queryset = models.Car.objects.filter(is_delete=False)
serializer_class = serializers.CarsModelSerializer
Django-rest framework框架的三大认证组件的更多相关文章
- DRF框架(七) ——三大认证组件之频率组件、jwt认证
drf频率组件源码 1.APIView的dispatch方法的 self.initial(request,*args,**kwargs) 点进去 2.self.check_throttles(re ...
- django rest framework框架中都有那些组件
1.权限 2.认证 3.访问频率 4.序列化 5.路由 6.视图 7.分页 8.解析器 9.渲染器 规定页面显示的效果(无用) https://www.cnblogs.com/Rivend/p/118 ...
- Django Rest framework 框架之认证使用和源码执行流程
用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...
- drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件
RBAC 基于用户权限访问控制的认证 - Role-Based Access Control Django框架采用的是RBAC认证规则,RBAC认证规则通常会分为 三表规则.五表规则,Django采用 ...
- 第四章、drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件
目录 RBAC 基于用户权限访问控制的认证 - Role-Based Access Control 三大认证组件 源码分析 一.认证组件 自定义认证类 使用: 二.权限组件 自定义权限类 三.频率组件 ...
- Django REST framework框架介绍和基本使用
Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...
- Django Rest Framework框架 ---- url控制器
Django Rest Framework框架 ---- url控制器
- web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝
web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...
- web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍
web前端Vue+Django rest framework 框架 生鲜电商项目实战 整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...
随机推荐
- C#路径2
String apppath = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase; //获取整个文件路径名ap ...
- 查看mysql表空间
,),'MB') as data_size, concat(,),'MB') as index_size from information_schema.tables group by TABLE_S ...
- check Linux文件夹个数
(ls -l|grep "^-"| wc -l)查看某个文件夹下文件的个数.(ls -lR|grep "^-"| wc -l)查看某个文件夹下文件的个数,包括子 ...
- SpringMVC: JSON
SpringMVC:JSON讲解 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编 ...
- Linux每日一练20200219
- POJ 3461:Oulipo
Oulipo Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 28155 Accepted: 11251 Descript ...
- 如何创建NPM包并上传
1 在NPM网站上注册,并验证(verify)自己的邮箱 https://www.npmjs.com 2 用命令行定位到你的库文件夹 3 在命令行里登录npm, 按提示依次输入用户名 密码 注册邮箱 ...
- B站 React教程笔记day1(4)调色板案例
视频地址 main.js import React from "react" import { render } from "react-dom" import ...
- [题解] CF622F The Sum of the k-th Powers
CF622F The Sum of the k-th Powers 题意:给\(n\)和\(k\),让你求\(\sum\limits_{i = 1} ^ n i^k \ mod \ 10^9 + 7\ ...
- repr. str, ascii in Python
repr和str a="Hello" print(str(a)) print(repr(a)) 结果: Hello 'Hello' 可以看出,repr的结果中多了左右两个引号. r ...
