摘要: 目录: 1.__init__初始化方法 2.__new__构造方法 3.__del__析构方法 4.__call__方法 5.__len__方法 6.__str__方法 7.__repr__方法 8.__bool__方法 9.__format__方法 属性相关魔术方法 10.__getattribu 阅读全文
posted @ 2023-02-23 22:48 五仁味儿月饼 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 之前使用 request.data 获取请求体中的数据。 这个 reqeust.data 的数据怎么来的呢?其实在drf内部是由解析器,根据请求者传入的数据格式 + 请求头来进行处理。 解析器可以设置多个,默认解析器:JSONParser,FormParser,MultiPartParse 可以在全 阅读全文
posted @ 2023-02-16 22:38 五仁味儿月饼 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 在之前进行drf开发时,对于路由我们一般进行两种配置: 视图继承APIView from django.urls import path from app01 import views urlpatterns = [ path('api/users/', views.UserView.as_view 阅读全文
posted @ 2023-02-16 22:37 五仁味儿月饼 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 如果数据很多,我们不能将所有的数据一下传递给前端,通常的做法是通过分页进行展示 在drf中为我们提供了一些分页的相关类 BasePagination PageNumberPagination(BasePagination) # 支持 /accounts/?page=4&page_size=100 格 阅读全文
posted @ 2023-02-16 22:37 五仁味儿月饼 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 1.自定义filter 继承BaseFilterBackend 定义filter_queryset函数 注意:只有在继承了GenericAPIView的视图类中才生效 代码 from app01.models import UserInfo from rest_framework import se 阅读全文
posted @ 2023-02-16 22:36 五仁味儿月饼 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 在视图中,如果参数有request,我们可以直接使用,如果参数没有,则可以通过self.request获取 1.APIView 我们之前使用的基本上都是APIView,给我们提供了免除csrf验证,请求封装,版本控制,认证,权限和限流的功能,以下是源码展示 2.GenericAPIView Gene 阅读全文
posted @ 2023-02-16 22:35 五仁味儿月饼 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 限流就是限制用户的访问频率,如每分钟的操作的次数不超过3次等 对于匿名用户,使用用户IP作为唯一标识 对于登录用户,则使用用户的ID作为唯一标识 1.限流的机制 DRF中维护了一个缓存,以用户的唯一标识作为键,一个列表为值,存放着当前用户访问的时间戳。 当用户再次请求的时候,会根据用户唯一标识去缓存 阅读全文
posted @ 2023-02-16 22:34 五仁味儿月饼 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 在序列化类中,如果想使用request,则可以通过self.context['request']获取 序列化器的主要由两大功能 - 对请求的数据进行校验(底层调用的是Django的Form和ModelForm)- 对数据库查询的数据进行序列化 1.数据的校验 注意自定义的钩子函数中的参数value, 阅读全文
posted @ 2023-02-16 22:34 五仁味儿月饼 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 认证:判断用户是否登陆,从而获取用户的信息 权限:判断当前用户是否有权限访问API接口,例如:普通用户,管理员,超级管理员权限可能是不同的 下面通过案例进行介绍 模型类 from django.db import models class UserInfo(models.Model): role_c 阅读全文
posted @ 2023-02-16 22:34 五仁味儿月饼 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 在开发后端API的时候,不同的功能可能有不同的限制,如 无需验证:API可以直接访问 需要验证:API只有用户通过验证才可以访问 这个时候我们就可以使用DRF提供的认证组件,下面通过一个例子介绍 我们希望用户在登录之后,才能访问订单页面 模型类 from django.db import model 阅读全文
posted @ 2023-02-16 22:33 五仁味儿月饼 阅读(19) 评论(0) 推荐(0) 编辑