JWT认证简介 jwt:json web token,是一种前后端的登录认证方式, 它分token的签发和认证,签发的意思是用户登录成功,生成三段式的token串; 认证指的是用户访问某个带有用户登录权限的接口,需要携带token串过来,完成认证。三段式分为头、荷载和签名。 认证通过头和荷载,通过加密得到签名,然后比
内容详细 1 RBAC # python用来做公司内部项目居多,人事系统,进销存,报销审批,自动化运维 -公司内部项目对执行效率要求不高(人少) -对开发效率要求高(越快开发出越好,成本越低越好) -知乎,豆瓣用python写的---》随着用户量增大---》切换语言
内容详细 1 序列化和反序列化 api接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把数据转换格式,序列化可以分两个阶段: # 序列化: 把我们语言识别的数据转换成指定的格式提供给别人。 字典,列表,对象------》json/xml/prop,ma
自动生成文档 # coreapi 使用步骤 -pip3 install coreapi -路由中写 from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', include_docs_urls(title='站点页面标题')) ] -写视图类,只需要
对于列表数据,REST framework提供了OrderingFilter过滤器来帮助我们快速指明数据按照指定字段进行排序。 使用方法 在视图类中,添加类属性 filter_backends = [OrderingFilter] 原理:在类视图中设置filter_backends,使用rest_framework.filters.OrderingFilter过滤器,REST framework会
对于列表数据可能需要根据字段进行过滤,我们可以通过添加django-fitlter扩展来增强支持。 安装:pip install django-filter 在配置文settings.py中增加过滤组件的设置: INSTALLED_APPS = [ ... 'django_filters', # 需要注册应用, ] REST_FRAMEWORK = { ... # 全
权限组件Permissions 权限控制可以限制用户对于视图的访问和对于具体数据模型对象的访问。 在执行视图的as_view()方法的dispatch()方法前,会先进行视图访问权限的判断 在通过get_object()获取具体模型对象时,会进行模型对象访问权限的判断 提供的权限 AllowAny 允许所有用户 IsA
APIView REST framework提供了一个 APIView 类,它是Django的 View 类的子类。 APIView 类和Django原生的类视图的 View 类有以下不同: 传入的请求对象不是Django原生的 HttpRequest 类的实例,而是REST framework的Request 类的实例。 视图返回的是REST framework的 Response 响应,而不
Drf简介 在了解Drf之前先了解几个知识点 web开发模式 混合开发 # 前后端混合开发: - 模板的渲染是在后端完成: 比如: 后端: name = 'gary' 前端: var name = {{ name }} # 这个name是后端渲染过来的 # 那么就相当于在前端定义:var name =
目录 01.drf入门规范 02.序列化组件 03.请求与响应 04.视图组件 05.路由组件 06.认证权限频率 07.过滤排序分页异常处理 08.自动生成接口文档 09.JWT认证 10.Xadmin的使用 11.Book系列连表操作 12.RBAC-基于角色的访问控制
JWT的原理及使用 介绍: # jwt 一般用于用户认证(前后端分离,微信小程序,uniapp)的开发 json web token 认证流程。 1. 区别 传统认证 用户登录,服务端返回token,并将token保存在服务端 以后用户再来访问,需要携带token,服务端获取token后,再去数据库中获取token进行校验。 jwt认
编写登录功能引出认证,权限,频率: 前端通过接口测试工具Postman将用户名和密码通过HTTP请求发送至Django框架 models.py from django.db import models # Create your models here. class Books(models.Model): name = models.CharField(max_length=32) price = models.Int
drf(十)路由与渲染器 1.路由系统 1.1 自定义路由 # http://127.0.0.1:8000/api/v1/v1/?format=json # 以json的形式进行渲染 url(r'^(?P<version>[v1|v2]+)/v1/$', views.View1View.as_view({'get': 'list','post':'create'})), # http://127
RABC概念 RBAC 是基于角色的访问控制(Role-Based Access Control )在 RBAC 中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这就极大地简化了权限的管理。这样管理都是层级相互依赖的,权限赋予给角色,而把角色又赋予用户,这样的权限设计很清楚,管理起来很
分页概述 5个接口中,只有查询所以,涉及到分页。 pc端是下一页,下一页的形式;如果在app、小程序中展示的形式是下拉加载下一个的形式 分页默认提供了三种方式:PageNumberPagination、LimitOffsetPagination、CursorPagination 导入 from rest_framework.pagination imp
步骤 第一步:导入内置排序类 from rest_framework.filters import OrderingFilter 第二步:在视图类中配置(必须继承GenericAPIView) class BookView(GenericViewSet, ListModelMixin): queryset = Book.objects.all() serializer_class = BookSerizlizer fil
频率 概念: 认证、权限都通过以后,限制某个接口的访问频率,一般根据ip或者用户限制 使用步骤 第一步: 写一个类,继承SimpleRateThrottle 重写类属性:scope,和get_cache_key方法 get_cache_key返回什么,就以什么做限制,scope
操作步骤 第一步: 写一个类,继承BasePermission,重写has_permission,判断如果有权限,返回True,如果没有权限,返回False 第二步:局部使用和全局使用 局部使用 class BookDetailView(GenericViewSet, CreateModelMixin, DestroyModelMixin, UpdateModelMixin)
drf(六)—解析器 问题引出:请求头一般都会有多种的形式。最常见的是json形式,和form-data。其中json是最常见的形式。 解析器,一般用来解析用户发送过来的数据; 1.请求头要求 # django:request.POST/ request.body # Content-Type: application/x-www-form-urlencoded # PS: 如果请
drf(五)—版本控制 1.源码流程 与前几节的介绍相同源码入口依旧为dispatch()和inital(); def initial(self, request, *args, **kwargs): self.format_kwarg = self.get_format_suffix(**kwargs) # Perform content negotiation and store the accepted info on the reque
drf(四)访问频率与节流 问题引出:网站一般都存在爬虫机制,频率控制就是一种,如果一个IP或者用户在短时间内发起了多次请求显然不是正常的应用请求,此时应该加以访问频率的控制; 1.访问频率源码流程 与前几节的介绍相同源码入口依旧为dispatch()和inital(); def initial(self, request,
目录DRF 过滤排序分页异常处理过滤内置过滤类第三方过滤自定义过滤类源码分析排序分页PageNumberPagination,基本分页LimitOffsetPagination,偏移分页CursorPagination,游标分页分页总结异常自定义异常REST framework定义的异常 DRF 过滤排序分页异常处理 过滤 涉及到查询数据的接
路由Routers 对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系外,还可以使用Routers来帮助我们快速实现路由信息。 REST framework提供了两个router SimpleRouter DefaultRouter 使用方法 1.创建router对象,并注册视图集,例
内容概要 request 对象和 response 对象 GenericAPIView 介绍 基于 GenericAPIView 的 5个视图扩展类 GenericAPIView 的9个视图子类 视图集 ModelViewSet 的使用 ViewSetMixin 源码分析 内容详细 request 对象和 response 对象 请求之 request 对象 我们已经知道,drf 对原生的 r
DRF 框架中 路由的写法 使用 drf 框架,在视图层中都是使用 CBV,基于类的视图函数。书写路由时需要调用 as_view 有三种写法: 1、没有继承ViewSetMixin的视图与路由对应关系 urlpatterns = [ path('book/', views.BookAPIView.as_view()), ] 2、继承了ViewSetMixin的视图与路由