昨日回顾:
-HyperlinkedIdentityField(用来生成url),传三个参数
-实例化序列化类的时候,BookSerializer(ret, many=True, context={'request': request})
-序列化组件的数据校验
-类比forms组件
-局部(value是该字段的值)
-validate_字段名(self,value)
-全局钩子函数(通过校验值的字典)
-validate(self,value)

-认证
-写一个类:
class LoginAuth():
# 函数名一定要叫authenticate,接收必须两个参数,第二个参数是request对象
def authenticate(self, request):
# 从request对象中取出token(也可以从其它地方取)
token = request.query_params.get('token')
# 去数据库过滤,查询
ret = models.UserToken.objects.filter(token=token)
if ret:
# 能查到,说明认证通过,返回空
# ret.user就是当前登录用户对象,一旦retrun了,后面的认证类都不执行了
return ret.user,ret
# 如果查不到,抛异常
raise exceptions.APIException('您认证失败')

-局部使用:
-在视图类中加一行:
-authentication_classes = [LoginAuth, ]
-全局使用
-在setting中配置:
REST_FRAMEWORK={
'DEFAULT_AUTHENTICATION_CLASSES':['app01.MyAuth.LoginAuth',]
}
-局部禁用:
-在视图类中加一行:
-authentication_classes = []

-token表设置超时时间字段
-token原理
-'adfasdfasd'
-'sdafasdfasf|{id:1,'name':}'
-'asdfasdasd|2'

-权限
权限是什么?
-写一个类
class UserPermission():
# message是出错显示的中文
message='您没有权限查看'
def has_permission(self, request, view):
user_type = request.user.user_type
# 取出用户类型对应的文字
# 固定用法:get_字段名字_display()
user_type_name = request.user.get_user_type_display()
print(user_type_name)
if user_type == 2:
return True
else:
return False
-使用
-局部使用
-在视图类中加一行:
-permission_classes = [LoginAuth, ]

-全局使用
-在setting中配置
REST_FRAMEWORK={
'DEFAULT_PERMISSION_CLASSES':['app01.MyAuth.UserPermission',]
}
-局部禁用
-在视图类中加一行:
-permission_classes = [ ]

作业:
1 研究importlib
2 不存数据库版的token
3 上课讲的写一遍

rest_framework登录组件,权限组件的更多相关文章

  1. rest_framework 认证组件 权限组件

    认证组件 权限组件 一.准备内容 # models class User(models.Model): name = models.CharField(max_length=32) pwd = mod ...

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

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

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

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

  4. rest认证组件,权限组件,频率组件,url注册器,响应器组件,分页器组件

    1.认证组件 1.1 认证组件利用token来实现认证 1.2 token认证的大概流程 用户登录===>获取用户名和密码===>查询用户表 如果用户存在,生成token,否则返回错误信息 ...

  5. $Django Rest Framework-认证组件,权限组件 知识点回顾choices,on_delete

    一 小知识点回顾 #orm class UserInfo (models.Model): id = models.AutoField (primary_key=True) name = models. ...

  6. drf三大认证:认证组件-权限组件-权限六表-自定义认证组件的使用

    三大认证工作原理简介 认证.权限.频率 源码分析: from rest_framework.views import APIView 源码分析入口: 内部的三大认证方法封装: 三大组件的原理分析: 权 ...

  7. Django高级篇三。restful的解析器,认证组件,权限组件

    一.rest=framework之解析器 1)解析器作用. 根据提交的数据.只解析某些特定的数据.非法数据不接收,为了系统安全问题 比如解析的数据格式有 有application/json,x-www ...

  8. DRF框架(六)——三大认证组件之认证组件、权限组件

    drf认证组件 用户信息表 from django.db import models from django.contrib.auth.models import AbstractUser class ...

  9. Django框架深入了解_03(DRF之认证组件、权限组件、频率组件、token)

    一.认证组件 使用方法: ①写一个认证类,新建文件:my_examine.py # 导入需要继承的基类BaseAuthentication from rest_framework.authentica ...

随机推荐

  1. pyparsing自定义解析规则

    1.Word(token) 用于匹配由允许的字符集组成的单词,常见的错误是使用特定字符串Word("expr")匹配"expr" - L {alphas}  字 ...

  2. java获取request中的参数、java解析URL问号后的参数

    java获取request中的参数.java解析URL问号后的参数.有时候我们需要从request中获取参数,或者获取拼接在Url后面的参数,有时候一个一个去拿有点麻烦,一起拿出来放在一个map里面需 ...

  3. AS报:Manifest merger failed with multiple errors, see logs

    * What went wrong:Execution failed for task ':app:processDebugManifest'. Manifest merger failed with ...

  4. CSS选择器命名及常用命名

    CSS选择器命名及常用命名 CSS选择器命名及常用命名 规范的命名也是Web标准中的重要一项,标准的命名可以使代码更加易读,而且利于搜索引擎搜索,比如定义了两个div,一个 id 命名为“div1”, ...

  5. poj3250(单调栈模板题)

    题目链接:https://vjudge.net/problem/POJ-3250 题意:求序列中每个点右边第一个>=自身的点的下标. 思路:简单介绍单调栈,主要用来求向左/右第一个小于/大于自身 ...

  6. (5)Linux权限管理

    1.文件权限 2.1)文件类型 d:目录    -:文件    l:链接文件    b:可以存储的接口设备    c:串行端口设备(键盘,鼠标) 2)文件属性 接下来的九个字符以三个为一组分别是 rw ...

  7. Codeforces Round #553 (Div. 2) A题

    题目网址:http://codeforces.com/contest/1151/problem/A 题目大意:给定一个由大写字母构成的字符串和它的长度,有这样的操作,使任意一个字母变成与其相邻的字母, ...

  8. crm开发之用户ModelForm定制和密码加密

    写了这么多的定制 功能.终于可以定制一下了!因为是 stark 和 rbac 两个组建. 一起使用. 所以在这里,再记录一下.需要注意的点: 先放出 目录结构: 先从  stark 开始.使用star ...

  9. 关于java工程打exe包的一些问题

    这两天在把一个Java project打包成exe文件时碰到了一些问题,现在把这些问题和解决办法记下来. 1.用java swing做前端时,背景图片无法显示 Solution:把jpg图片换成png ...

  10. 用c语言基本实现wc.exe功能

    网址:https://github.com/3216005214/wc.exe wc项目要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写一个命令行程序,模仿 ...