04 2024 档案
摘要:序列化类源码分析 我们主要带着两个问题取探究 反序列化类校验是如何走的局部钩子和全局钩子 序列化类实例化分单条和多条,它们实例化得到的对象是不一样的(不同的类) 单条和多条的序列化类的实例化 首先当我们去查多条和查一条时,会在我们定义的序列化类传入参数many=True/False,然后加括
阅读全文
摘要:JWT介绍 在用户注册或登录后,我们想记录用户的登录状态,或者为用户创建身份认证的凭证。我们不再使用Session认证机制,而使用Json Web Token(本质就是token)认证机制。 构成和工作原理 JWT的构成 JWT就是一长串字符串,被.分成三段,分别是头部,载荷,签名 head
阅读全文
摘要:自动生成接口文档 REST framework可以自动帮我们生成接口文档。 接口文档以网页的形式呈现 自动接口文档能生成的是继承自APIView及其子类的视图 使用步骤 安装依赖 REST framework生成接口文档需要coreapi库的支持 pip install coreap
阅读全文
摘要:分页组件 查询所有,才有分页功能(例如网站的下一页功能,app下挂加载更多) PageNumberPagination基本分页 重要类属性 page_size = api_settings.PAGE_SIZE (每页显示条数) page_query_param = 'page' (查询时用的参数
阅读全文
摘要:全局异常捕获 drf只会捕获属于drf的异常,所以要做到全局异常捕获,还需要手动操作一下。 经过对drf异常处理组件的源码分析之后可以得知,其实就是自己定义一个exception_handler函数,然后全局替换一下即可 首先要知道,虽然是自己写一个exception_handler函数
阅读全文
摘要:排序与过滤 查询所有才需要过滤,排序是按照某个规则排序 排序 简单使用 导入类 OrderingFilter 在视图类重写filter_backends属性,在列表内填入导入的类 重写ordering_fields属性,在列表内填入字段 class BookView(ModelViewSet):
阅读全文
摘要:频率组件 他的作用是限制接口访问的频率 频率类的编写 写一个类,继承SimpleRateThrottle 重写get_cache_key,返回唯一标识,返回什么就以什么做限制 重写类属性rate 控制频率 from rest_framework.throttling import BaseThr
阅读全文
摘要:权限组件 通过观察APIView的源码,会发现他的里面执行了三个方法 self.perform_authentication(request) # 认证 self.check_permissions(request)# 权限 self.check_throttles(request)# 频率
阅读全文
摘要:认证组件 用于判断用户是否登录 简单使用 # 1.创建一个任意名字的py文件 # 2.导入认证类 from rest_framework.authentication import BaseAuthentication # 3.写一个类继承它并且重写authenticate方法 class Lo
阅读全文
摘要:Routers 对于视图集ViewSet,我们除了可以自己手动指明请求方式与动作action之间的对应关系,还可以使用Routers类来快速实现路由的创建 SimpleRouter(常用) DefaultRouter(用的少) # 方式一 # 1.导入Routers类 from rest_fra
阅读全文
摘要:两个视图基类 APIView # APIView 是rest-framwork提供的所有视图类的基类,它继承自django的View类 # 在APIView中仍然以常规的类视图定义方法来实现get()、post()...请求方式的方法 APIView和View的区别 传入到视图方法中的请求对象是re
阅读全文
摘要:【一】请求 Request 首先要知道,继承了APIView的视图类的方法的request对象不在是django默认的request对象,而是经过drf包装的一个新的request对象,他比老的request的功能要强大,它是Request类的对象 如果想要限制前端发过来的数据格式,它也可以
阅读全文
摘要:【一】序列化常见字段 序列化类中有很多多字段,如CharField IntegerField,他们会跟models里面的字段一一对应,除了这些,序列化类还多出了两个字段ListField和DictField,非常重要 字段 字段构造方式 BooleanField BooleanField() N
阅读全文
摘要:【一】APIView类的介绍 【1】介绍 Django REST Framework(DRF)中的 APIView 类是一个非常重要的基类,用于定义基于类的视图(Class-based Views)来处理 RESTful API 请求。它提供了强大的功能和灵活的扩展点,使得编写 API 视图变得
阅读全文
摘要:【一】web API接口 api接口应该有哪些东西 1.url地址 2.请求方式 如 get post delete post 等等 3.请求参数 - 地址栏中的参数: http://127.0.0.1:8000/index?name=green&age=18 - 请求体:编码格式 4.响应结果:j
阅读全文
摘要:【一】浏览器保存状态 【1】http请求的特点 # 1.无状态 每一次的http请求,浏览器都不会保存当时的状态,如用户的登录 # 2.无连接 每个http请求都是一次独立的交互,无连接也可以称为短链接,因为只有发送请求以及得到响应的那么一刻时间服务端和浏览器会有连接,他的连接生命周期非常短暂 #
阅读全文
摘要:引入 查看源码的前提 刚开始阅读一些库的源码的时候,最好选一些代码量少的先感受一下 看到看不懂的,没有必要去死磕,挑一些看得懂的,再结合网上的一些文献 一.django 的两个配置文件 一个是暴露给用户可以自己自定义的配置文件也就是项目根目录下的settings.py 一个是项目默认的配置文件:当用
阅读全文