共用的models from django.db import models # Create your models here. class User(models.Model): username = models.CharField(max_length=32) password = models.CharField(max_length=32) user_type = models.IntegerField(choices=((1, '超级用户'), (2, '普通用户'), (3, '…
回到顶部 快速实例 Quickstart 回到顶部 序列化 创建一个序列化类 简单使用 开发我们的Web API的第一件事是为我们的Web API提供一种将代码片段实例序列化和反序列化为诸如json之类的表示形式的方式.我们可以通过声明与Django forms非常相似的序列化器(serializers)来实现. models部分: from django.db import models # Create your models here. class Book(models.Model):…
认证组件 使用:写一个认证类,继承BaseAuthentication 在类中写authenticate方法,把request对象传入 能从request对象中取出用户携带的token根据token判断是否登录过 如果登录过,返回两个值 user对象 ,token对象(或者其他自定义的对象) 如果没有登录过抛异常 from rest_framework.authentication import BaseAuthentication from app01 import models from r…
一.三大认证功能分析 1)APIView的 dispath(self, request, *args, **kwargs) 2)dispath方法内 self.initial(request, *args, **kwargs) 进入三大认证 # 认证组件:校验用户 - 游客.合法用户.非法用户 # 游客:代表校验通过,直接进入下一步校验(权限校验) # 合法用户:代表校验通过,将用户存储在request.user中,再进入下一步校验(权限校验) # 非法用户:代表校验失败,抛出异常,返回403权…
DRF的权限 权限组件源码 权限和频率以及版本认证都是在initial方法里初始化的 我们的权限类一定要有has_permission方法~否则就会抛出异常~~这也是框架给我提供的钩子~~ 在rest_framework.permissions这个文件中~存放了框架给我们提供的所有权限的方法~~ 主要说下BasePermission 这个是我们写权限类继承的一个基础权限类~~~ 权限的详细用法 initial方法在初始化的时候是有顺序的:版本-->权限-->频率 写权限类 class MyPe…
本篇随笔在 "Django REST framework 初识" 基础上扩展 一.认证组件 # models.py class Account(models.Model): """用户表""" username = models.CharField(verbose_name=, unique=True) password = models.CharField(verbose_name=) class UserToken(mod…
一:使用RestFramwork,定义一个视图 from rest_framework.viewsets import ModelViewSet class BookView(ModelViewSet): queryset = Book.objects.all() serializer_class = BookSerializer 认证.频率和权限组件都由继承的ModelViewSet支持,所以要了解这三个组件的具体如何实现 对认证.频率.权限的管理就需要进入到其中查看 二:首先来了解组件认证…
一.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…
一.认证 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 权限配置 五.频率组件 频率限制源码分析 重点 系…