一.rest-framework登录验证 1.models.py添加User和Token模型 class User(models.Model): name = models.CharField(max_length=32) pwd = models.CharField(max_length=32) class Token(models.Model): user = models.OneToOneField("User", on_delete=models.CASCADE) token…
一:使用RestFramwork,定义一个视图 from rest_framework.viewsets import ModelViewSet class BookView(ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer 认证.频率和权限组件都由继承的ModelViewSet支持,所以要了解这三个组件的具体如何实现 对认证.频率.权限的管理就需要进入到其中查看 二:首先来了解组件认证…
models.py中: class UserInfo(models.Model): name = models.CharField(max_length=32) psw = models.CharField(max_length=32) user_type_choices = ((1,"普通"),(2,"VIP"),(3,"SVIP")) user_type = models.SmallIntegerField(choices=user_type…
一.认证 1.表的关系 class User(models.Model): name = models.CharField(max_length=32) pwd = models.CharField(max_length=64) def __str__(self): return self.name class Token(models.Model): users = models.OneToOneField(to="User", on_delete=models.CASCADE) t…
目录 一.特殊路由映射的请求 二.token刷新机制配置(了解) 三.认证组件项目使用:多方式登录 1.urls.py 路由 2.views.py 视图 3.serializers.py 序列化 4.models.py 表 四.权限组件项目使用:vip用户权限 数据准备 1.permissions.py 自定义权限 2.views.py 权限视图 3.serializers.py 序列化 4.urls.py 自定义路由 5.setting.py 权限配置 五.频率组件 频率限制源码分析 重点 系…
一.引入 通过前面三节课的学习,我们已经详细了解了DRF提供的几个重要的工具,DRF充分利用了面向对象编程的思想,对Django的View类进行了继承,并封装了其as_view方法和dispatch方法,随后提供了几个非常方便的编程工具,比如解析器.序列化. 我们通过解析器,可以对来自客户端的application/json数据进行解析,另外,通过序列化工具,我们能够快速构建一套符合REST规范的api,随后又通过DRF的mixin.view及viewset对这些接口逻辑进行优化. 有了他们,程…
Django框架 之 Auth用户认证 浏览目录 auth模块 user对象 一.auth模块 1 from django.contrib import auth django.contrib.auth中有许多方法,这里主要介绍其中比较常用的三个: 1.authenticate() 提供了用户认证,即验证用户名以及密码是否正确,一般需要username  password两个关键字参数 如果认证信息有效,会返回一个  User  对象.authenticate()会在User 对象上设置一个属性…
django-rest-framework 基础三 认证.权限和频率 目录 django-rest-framework 基础三 认证.权限和频率 1. 认证 1.1 登录接口 1.2 认证 2. 权限 2.1 权限总结: 3. 频率 3.1 频率总结 1. 认证 登录接口: 登录成功只要给前端返回json格式字符串,这个字符串中带一个随机字符串(可以使用uuid生成) 登录接口步骤: 前端传入用户名和密码,然后去user表中查找,能找到说明用户和密码没问题,登录成功,然后在userToken表中…
本篇随笔在 "Django REST framework 初识" 基础上扩展 一.认证组件 # models.py class Account(models.Model): """用户表""" username = models.CharField(verbose_name=, unique=True) password = models.CharField(verbose_name=) class UserToken(mod…