源码分析:三大认证组件的封装

组件的认证配置:

模型层: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框架的三大认证组件的更多相关文章

  1. DRF框架(七) ——三大认证组件之频率组件、jwt认证

    drf频率组件源码 1.APIView的dispatch方法的  self.initial(request,*args,**kwargs)  点进去 2.self.check_throttles(re ...

  2. django rest framework框架中都有那些组件

    1.权限 2.认证 3.访问频率 4.序列化 5.路由 6.视图 7.分页 8.解析器 9.渲染器 规定页面显示的效果(无用) https://www.cnblogs.com/Rivend/p/118 ...

  3. Django Rest framework 框架之认证使用和源码执行流程

    用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...

  4. drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件

    RBAC 基于用户权限访问控制的认证 - Role-Based Access Control Django框架采用的是RBAC认证规则,RBAC认证规则通常会分为 三表规则.五表规则,Django采用 ...

  5. 第四章、drf框架 - 三大认证组件 | 认证组件 | 权限组件 | 频率组件

    目录 RBAC 基于用户权限访问控制的认证 - Role-Based Access Control 三大认证组件 源码分析 一.认证组件 自定义认证类 使用: 二.权限组件 自定义权限类 三.频率组件 ...

  6. Django REST framework框架介绍和基本使用

    Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...

  7. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  8. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  9. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

随机推荐

  1. [HNOI2008] 玩具装箱 D2 T3 斜率优化DP

    Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...

  2. 51nod 1105:第K大的数

    1105 第K大的数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 数组A和数组B,里面都有n个整数.数组C共有n^2个整数,分别是A[0] * ...

  3. CDC::DrawText详解

    函数原型 int DrawText( HDC hDC,          // 设备描述表句柄 LPCTSTR lpString, // 将要绘制的字符串 int nCount,       // 字 ...

  4. EUI库 - 10 - 使用自定义组件

      步骤 1 在根节点,添加一个自定义的命名空间  2 可以设置skinName 自定义组件规范 1 不复用的不要用自定义组件 2 属性必须要有默认值(赋值为null也可以),因为TS编译器会把没有默 ...

  5. 洛谷 P2697 宝石串

    题目传送门 解题思路: 将红色的设置为-1,绿色的为1,统计前缀和sum,如果sum[i] == sum[j],则说明i~j是一个稳定的区间 因为答案要求最大,所以我们要记录每个sum值的最左端点(也 ...

  6. weex 随笔

    1.三大模块: <template>:样板,内容区 <style>:css <script>: js <script> export default{ ...

  7. Excel----考勤表制作自动更新日期

    起初效果 1. 我们首先输入年月日,如图 选择日期 按`ctrl+1` 来调出下图: 2. 数据填充 3.设置星期 点击1下面的单元格

  8. dateutil 2.5.0 is the minimum required version python

    问题重现 在运行以下代码时出现了该错误: import pandas as pd import numpy as np 原因与解决 原因是dateutil库版本低于2.5.0,卸载重装即可: pip ...

  9. 读写锁ReentrantReadWriteLock源代码浅析

    1.简介 并发中常用的ReentrantLock,是一种典型的排他锁,这类锁在同一时刻只允许一个线程进行访问,实际上将并行操作变成了串行操作.在并发量大的业务中,其整体效率.吞吐量不能满足实现的需要. ...

  10. linux常用命令之------文件操作、文件查看、权限、打包压缩

    1.一般公司把linux作为自己的应用服务器,将应用和服务器部署在上面 2.测试一般用来打包.压缩.查日志,写一个简单的shell 获得linux服务器的方式 a:网上租一台云服务器 b:安装vmwa ...