
DRF---Django Restful知识点
文章平均质量分 81
记录个人在学习DRF时的知识点
叫我DPT
若有错误与不足请指出,关注DPT一起进步吧!!!
展开
-
Django REST framework 实现缓存机制以优化性能
页面首页中,导航菜单或轮播广告在项目中每一个页面都会被用户频繁访问到,所以我们可以实现缓存,减少MySQL数据库的查询压力,使用内存缓存可以加快数据查询速度。原创 2024-09-14 17:35:17 · 1238 阅读 · 0 评论 -
DRF——router路由,parser解析器
可以使用rest_framework中的router来简化视图函数继承GenericViewSet或者ModelViewSet是的路由分发。其实在drf内部是由解析器,根据请求者传入的数据格式 + 请求头来进行处理。若有错误与不足请指出,关注DPT一起进步吧!视图继承APIView。获取请求体中的数据。原创 2024-08-24 16:35:11 · 773 阅读 · 0 评论 -
DRF——pagination分页模块
在查看数据列表的API中,如果 数据量 比较大,肯定不能把所有的数据都展示给用户,而需要通过分页展示。如果编写视图是直接继承APIView,那么在使用分页时,就必须自己手动 实例化 和 调用相关方法。,则只需要配置相关类即可,内部会自动执行相关分页的方法。若有错误与不足请指出,关注DPT一起进步吧!原创 2024-08-24 15:43:00 · 345 阅读 · 0 评论 -
DRF——Filter条件搜索模块
自定义filter后,需要在view视图类中定义类变量,django会自动读取循环中的filter类并执行实例化对象的方法。(get,put,delete,patch都会执行,post不会)# urls.py)),)),# views.pyreturn 666""" 序列化:对请求的数据校验成功后,执行保存。"""原创 2024-08-23 17:45:51 · 1064 阅读 · 0 评论 -
DRF——视图类的继承关系功能梳理(APIView,GenericAPIView,GenericViewSet,五大mixin类,)
继承APIView,在APIView的基础上又增加了一些功能。get_object等。GenericAPIView会将数据库查询、序列化类提取到类变量中,让后通过get_object等方法获取类变量。,将数据库查询、序列化类的定义提取到类变量中,便于后期处理。实际在开发中一般不会直接继承它,他更多的是担任中间人的角色,为子类提供公共功能。他的子类只需要定义类变量就能轻松的实现相关功能# urls.py# views.pyserializer_class = 序列化类。原创 2024-08-23 11:29:16 · 1236 阅读 · 0 评论 -
DRF——Serializer数据校验和序列化模块
序列化的底层源码实现有别于上述其他的组件,序列化器相关类的定义和执行都是在视图中被调用的,所以源码的分析过程可以分为:定义类、序列化、数据校验。自定义create和update方法,自定义新建和更新的逻辑据的格式,并且还要对嵌套类的字段设置。当数据校验完成后,save时会返回新增的对象。当传输的数据都是不可变对象时,可以通过form-data的格式传递。但是当传输的数据包含列表,字典这种时,必须通过json的格式传递。提示:save方法会返回新生成的数据对象。提示:save方法会返回新生成的数据对象。原创 2024-08-22 22:44:18 · 1344 阅读 · 0 评论 -
DRF——Throttle限流模块
限流,限制用户访问频率,例如:用户1分钟最多访问100次 或者 短信验证码一天每天可以发送50次, 防止盗刷。若有错误与不足请指出,关注DPT一起进步吧!本质,每个限流的类中都有一个。当遇到不通过的限流类时直接报错。让所有的限流类都执行完,在报错。原创 2024-08-22 16:19:23 · 213 阅读 · 0 评论 -
DRF——permission权限模块
权限,读取认证中获取的用户信息,判断当前用户是否有权限访问,例如:普通用户、管理员、超级用户,不同用户具有不同的权限。方法,如果返回True,则继续执行后续的权限类;如果返回None或False,则抛出权限异常并停止后续权限类的执行。当开发过程中需要用户同时具备多个权限(缺一不可)时,可以用多个权限类来实现。认证,根据用户携带的 token/其他 获取当前用户信息。若有错误与不足请指出,关注DPT一起进步吧!权限组件内部处理机制:按照列表的顺序逐一执行。原创 2024-08-22 13:24:30 · 364 阅读 · 0 评论 -
DRF——Authentication认证模块
注意:不同于之前的案例,之前案例是:必须认证成功后才能访问,而此案例则是已认证和未认证均可访问。多个认证类时:前面的认证类可以在可以通过返回None来执行下一个认证类,最后验证失败时要抛出异常。当项目中可能存在多种认证方式时,就可以写多个认证类。返回含有两个元素的元组,表示认证成功,并且会将元素的第1个元素赋值给。返回None,表示继续调用 后续的认证类 进行认证(上述案例未涉及)当出现多个认证类时,drf内部会按照列表的顺序,逐一执行认证类的。中定义认证类时,传入的是一个列表,支持定义多个认证类。原创 2024-08-21 18:48:33 · 930 阅读 · 0 评论 -
DRF——请求的封装与版本管理
类的对象,其是又对django的request进行了一次封装,包含了除django原request对象以外,还包含其他后期会使用的其他对象。如果你项目比较大,需要些很多的视图类,在每一个类中都写一遍会比较麻烦,所有drf中也支持了全局配置。drf的request是 原来django的request与认证,解析等对象一起封装后的对象。在前后端不分离项目中要解决post,put,delete的crsf问题时:通常会在表单中加入。drf框架中支持5种版本的设置。而在使用drf框架时,视图中的request是。原创 2024-08-21 16:13:33 · 1070 阅读 · 0 评论 -
DRF——RESTful规范
如果是基于HTTP协议,则意味着用户浏览器再向服务器发送数据时,都是以明文的形式传输,如果你在某咖啡厅上网,他就可以把你网络传输的数据明文都获取到。如果是基于HTTPS协议,则意味着用户浏览器再向服务器发送数据时,都是以密文的形式传输,中途即使有非法用户获取到网络数据,也可以密文的,无法破译。暂且不说restful规范有多好,对于前端和后端只要能统一了规范,对大家的开发效率都会有很大的帮助,不用再做很多无效的沟通了。注意:此处大家先了解https和http的不同,至于底层原理和部署,在项目部署时再细讲。原创 2024-08-20 22:39:32 · 909 阅读 · 0 评论