
drf大全
diangorestframework整理大全/报错大全/源码分析/希望对您有帮助
骑台风走
One line of code can change everything.
展开
-
drf---权限控制/djagno-vue-admin/django-simpleui
1 基于django的auth+admin 快速开发,有更多操作,但是没学。# python+django 开发出一套公司内部项目,要带rbac的权限控制。# python开发,公司内部项目多,使用基于角色的访问控制的权限,比较多。-2 基于django的auth+admin+第三方美化 快速开发。-国内的:simple-ui,xadmin(弃用了)-djagno-vue-admin :第三方开源。-3 基于django+vue+自定制权限。# 2 配置文件配置,注册app。# 7 首页显示的隐藏。原创 2023-06-14 10:56:36 · 1372 阅读 · 0 评论 -
drf---jwt原理/jwt开发流程/drf-jwt快速使用/drf-jwt定制返回格式/drf-jwt自定义用户表签发/drf-jwt自定义认证类/drf-jwt的签发源码分析/认证源码
1 创建一个用户表# 2 登录接口if user:# 登录成功,签发token--->先背过,# 1 通过user,获取payload# 2 通过payload,得到tokenreturn Response({'code': 100, 'msg': '登录成功', 'username': user.username, 'token': token})else:return Response({'code': 101, 'msg': '用户名或密码错误'})原创 2023-06-14 10:54:42 · 106 阅读 · 0 评论 -
drf---全局异常处理/接口文档/jwt介绍和原理/base64编码和解码
cookie,session,token发展历史-会话管理-cookie:客户端浏览器的键值对-session:服务的的键值对(djangosession表,内存中,文件,缓存数据库)-token:服务的生成的加密字符串,如果存在客户端浏览器上,就叫cookie-三部分:头,荷载,签名-签发:登录成功,签发-认证:认证类中认证# jwt:Json web token (JWT),web方向的token认证。原创 2023-06-14 10:39:31 · 430 阅读 · 0 评论 -
drf---->全局异常处理/接口文档/base64编码和解码
cookie,session,token发展历史-会话管理-cookie:客户端浏览器的键值对-session:服务的的键值对(djangosession表,内存中,文件,缓存数据库)-token:服务的生成的加密字符串,如果存在客户端浏览器上,就叫cookie-三部分:头,荷载,签名-签发:登录成功,签发-认证:认证类中认证# jwt:Json web token (JWT),web方向的token认证。原创 2023-05-26 22:31:59 · 159 阅读 · 1 评论 -
drf--->权限,认证/过滤/排序/分页/django中的翻译函数
【代码】drf--->权限,认证/过滤/排序/分页/django中的翻译函数。原创 2023-05-26 22:29:07 · 101 阅读 · 0 评论 -
drf---Request类源码分析/序列化组件介绍/查询所有和查询单条/常用字段类和参数(了解)/字段参数(校验数据来用的)/反序列化之校验/
1. 序列化,序列化器会把模型对象(queryset,单个对象)转换成字典,经过response以后变成json字符串2. 反序列化,把客户端发送过来的数据,经过request.data以后变成字典,序列化器可以把字典转成模型3. 反序列化,完成数据校验功能。原创 2023-05-17 22:25:06 · 490 阅读 · 0 评论 -
django转换器,配置文件作用/登录功能/认证组件/权限组件/频率组件/
【代码】【无标题】原创 2023-05-24 20:38:16 · 292 阅读 · 0 评论 -
drf----5个视图扩展类/9个视图子类/视图集/drf之路由
两个视图基类-APIView# 5 个视图扩展类(不是视图类,需要配合GenericAPIView及其子类使用)# 9个视图子类# 视图集:ModelViewSet:5个接口的ReadOnlyModelViewSet:两个接口,list和retrieveViewSetMixin:魔法,不能单独使用,必须配合视图类用,路由写法变了ViewSet:ViewSetMixin+APIView,以后想继承APIView,但是想路由写法变化,视图类中方法可以任意命名。原创 2023-05-24 20:34:33 · 131 阅读 · 0 评论 -
drf---1 反序列化校验源码分析/Request类对象的分析/请求,能够接受的编码格式/drf之响应/视图之两个视图基类/
【代码】drf---1 反序列化校验源码分析。原创 2023-05-20 19:05:30 · 222 阅读 · 2 评论 -
drf--source/定制字段的两种方式/反序列化保存/字段校验其他/ModelSerializer
【代码】drf--source/定制字段的两种方式/反序列化保存/字段校验其他/ModelSerializer。原创 2023-05-19 09:04:31 · 228 阅读 · 0 评论 -
djangorestframework-simplejwt
djangorestframework-simplejwt快速使用原创 2022-09-14 09:23:12 · 9242 阅读 · 70 评论 -
drf---create方法和perform_create方法有什么区别
1. create&&perform_create介绍1. 1 介绍# create序列化器保存数据的方法# perform_create调用保存数据的方法# perform_create 该方法就是一个serializer.save(),本质上就是调用create1.2. 源码def create(self, request, *args, **kwargs): # 外部我们配置序列化器 serializer = self.get_seria原创 2022-04-26 15:39:33 · 5418 阅读 · 3 评论 -
drf---序列化器的save
# save可以传入默认值ser.save(userinfo='dbj')原创 2022-04-26 15:22:52 · 3453 阅读 · 1 评论 -
jwt的封装---1.71版本---在drf中使用
1. 安装pip3 install pyjwt==1.7.12. 签发tokenimport jwtimport datetimefrom jwt import exceptionsfrom django.conf import settingsdef create_token(user, day=14, SALT=settings.SECRET_KEY): """ :param user: 用户对象2 :param day: 日期。单位天 ,默认14原创 2022-03-06 11:31:28 · 2828 阅读 · 0 评论 -
Django REST framework JWT
1. 安装pip3 install djangorestframework-jwt -i https://mirrors.aliyun.com/pypi/simple/2. 使用2.1 重写认证from rest_framework.authentication import BaseAuthenticationfrom rest_framework.exceptions import AuthenticationFailedfrom rest_framework_jwt.authe原创 2022-03-06 11:30:53 · 4223 阅读 · 7 评论 -
def序列化器---视图&序列化&反序列化
0.介绍a. 本文介绍了常用的,视图&反序列化&序列化,中使用的方法。b. 序列化器他有两个作用:序列化、校验。c. 序列化、校验,可以走一个序列化器,也可以走两个。1. 视图1.1 选择serializerclass TestView(ListAPIView,CreateAPIView): queryset = models.Topic.objects serializer_class = TestSER def get_serializ原创 2022-02-28 17:45:54 · 3610 阅读 · 0 评论 -
drf---自定义认证类&同一个类中get/post使用两个不同的认证类
1. 自定义认证类认证详解https://blog.youkuaiyun.com/qq_52385631/article/details/123022575?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164597980116780265454589%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=16459798011原创 2022-03-02 15:53:23 · 2997 阅读 · 0 评论 -
drf序列化器---时间字段字段格式的转换
1. 重写时间字段(方式1)class IndexDataModelSerializer(serializers.ModelSerializer): """首页返回的数据""" create_time = serializers.DateTimeField(format='%Y-%m-%d') class Meta: model = models.Release fields = [ 'create_time'原创 2022-02-28 00:32:37 · 3580 阅读 · 0 评论 -
django脚本运行环境
0. 介绍如果在django里面写一些脚本,涉及到数据库的,那么必须配置环境1. 固定格式import osimport sysimport djangobase_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.path.append(base_dir)# 替换下面这一句即可,在manage.py里面找os.environ.setdefault('DJANGO_SETTINGS_MODUL原创 2022-02-28 00:17:51 · 3293 阅读 · 0 评论 -
drf 在使用save()时可以传递参数
0. save()介绍用于保存数据,可以传递参数1. 案例 def post(self, request, *args, **kwargs): ser = PostCommentModelSerializer(data=request.data) if ser.is_valid(): # 所有生成的记录,userinfo外键都是1的那个用户 ser.save(userinfo_id=1)原创 2022-02-28 00:14:26 · 2823 阅读 · 0 评论 -
前端需要&传进的各种格式-----后端对应返回&保存
0. 此接口基于drf1. 正常的列表套字典格式1.1 格式[ {'id':1, 'name': "dbj"}, {'id':1, 'name': "dbj"}, {'id':1, 'name': "dbj"}]1.2 序列化器写法1(没有外键)class IndexDetailDataModelSerializer(serializers.ModelSerializer): class Meta: model = mode原创 2022-02-24 00:13:45 · 3176 阅读 · 0 评论 -
drf---序列化器的坑(完整版)
1. 序列化器,未声明的字段如果一个字段未声明,在全局钩子/局部钩子/validated_data/....都是拿不到的,只能request.data去拿2. 反序列化的时候,可以把列表传过去吗?2.1 必须可以,2.2 但是序列化器必须嵌套2.3 案例url path('t1/', views.T2.as_view()),viewclass t1(APIView): def post(self, request, *args, **kwargs):原创 2022-02-22 23:38:30 · 3570 阅读 · 0 评论 -
drf快速入门04---权限源码精读
1. 权限源码精读# APIView---->dispatch---->initial--->self.check_permissions(request)(APIView的对象方法) def check_permissions(self, request): # 遍历权限对象列表得到一个个权限对象(权限器),进行权限认证 for permission in self.get_permissions(): # 权限类一原创 2022-02-20 23:17:06 · 2945 阅读 · 0 评论 -
drf---过滤/排序/分页
1. 过滤1.1 安装pip3 install django-filter1.2 注册INSTALLED_APPS = [ 'django_filters',]1.3 使用1.3.1 全局使用1.3.1.1 settings配置REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',)}1.3.原创 2022-02-20 22:54:04 · 3655 阅读 · 0 评论 -
drf---序列化器使用坑
1. 反序列化的时候,数据库新增字段,无法序列化返回1.1. 在序列化返回字段的时候,只能序列化,数据库原先有的字段。1.2. 如果在反序列化的过程中,给数据库增加新的字段,序列化的时候,返回的,还是原先数据库,原有的字段,新增的字段,无法返回2. 解决办法手动从数据库获取,想要的字段,传给response,让其json化(我们返回前端的,大部分都是json格式)...原创 2022-02-20 21:50:35 · 3125 阅读 · 0 评论 -
drf快速入门04---路由&认证源码精读
1. 路由(继承了ViewSetMixin)1.1ViewSetMixin重写了as_view,作用是可以自定义函数名称,需要在路由中进行相关的配置1.2手动生成路由# 一旦视图类,继承了ViewSetMixin,路由 path('books5/', views.Book5View.as_view(actions={'get':'list','post':'create'})), #当路径匹配,又是get请求,会执行Book5View的list方法 re_path('b..原创 2022-02-19 19:43:30 · 3003 阅读 · 0 评论 -
drf快速入门03--- 2个视图基类&5个视图mixins扩展类&9个GenericAPIView的视图子类&5个viewsets视图集基类---继承关系及部分源码精读
1. 继承关系图片来源https://blog.youkuaiyun.com/LHQ626/article/details/1184002962.GenericAPIView[通用视图类]2.1. GenericAPIView介绍a. 继承自APIVIew,b. 主要增加了操作序列化器和数据库查询的方法,作用是为下面Mixin扩展类的执行提供方法支持。c. 通常在使用时,可搭配一个或多个Mixin扩展类。2.2. 属性及方法介绍属性queryset指明表模型对象..原创 2022-02-17 22:51:45 · 3008 阅读 · 0 评论 -
drf快速入门02---ModelSerializer的使用&many=True源码分析
一. 基于ModelSerializer的增删查改modelfrom django.db import models# Create your models here.class Book(models.Model): name = models.CharField(verbose_name='书名', max_length=32) price = models.DecimalField(verbose_name='价格', decimal_places=2, max_原创 2022-02-16 22:39:47 · 3917 阅读 · 1 评论 -
drf---Response重写
# response_expestion.pyfrom rest_framework.views import exception_handlerfrom rest_framework import statusfrom rest_framework.response import Responseclass APIResponse(Response): def __init__(self, result=None, code=None, msg='成功', status=None,.原创 2022-02-15 23:18:44 · 2924 阅读 · 1 评论 -
drf快速入门01---REST规范介绍&序列化器的基础使用
一. 基本规范REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。这种风格的理念认为后端开发任务就是提供数据的,对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的URL路径就表示这种要操作的数据资源。事实上,我们可以使用任何一个框架都可以实现符合restf原创 2022-02-15 07:00:00 · 2856 阅读 · 1 评论 -
drf---APIView源码精读(待补充)
0.dfr的APIView,实际上是继承了django的原生View一. 路由及视图 path('text_Apiview/', views.TextAPIView.as_view()),from rest_framework.views import APIViewfrom rest_framework.response import Responseclass TextAPIView(APIView): def get(self, request):原创 2022-02-06 09:56:26 · 2811 阅读 · 0 评论 -
django-CBV模式源码精读
0. django视图有两种写法,一般我们用FBV,今天我们揭开CBV的面纱总结: # 1. 你在路由中写一个as_view,他实际上会自动执行,并返回一个内层函数地址, # 2. 等请求来了,django自动加括号执行View方法 # 3. 然后实例化一个当前类对象,在进行一些判断, # 4. 给他封装一下属性-->判断结束执行dispatch,返回一个handler方法, # 5. handler方法,只有...原创 2022-02-05 21:14:48 · 2993 阅读 · 0 评论 -
drf----过滤组件&分页组件的快速使用,后端drf+前端vue
0. 准备a. django2.2+drf+vue+跨域+ide(pycharm/...)b. 跨域实现前后端跨域前后端实现跨域https://blog.youkuaiyun.com/qq_52385631/article/details/122736816?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164398650116780271539703%2522%252C%2522scm%2522%253A%252220140713.13原创 2022-02-05 18:05:49 · 3874 阅读 · 0 评论 -
drf自定义返回的外键类型:source+序列化器嵌套+model自定义字段
一. 序列化器单独放外键字段,如果是不经过处理,会返回id: "teacher"返回外键的id值二. sourcea. 适用于查询一个字段的 "teacher_name": "dbj",b. 查询多个需要进行,写多个(不方便,如果是一层外键的话,我们一般用序列化器嵌套)teacher_name = serializers.CharField(source='teacher.name')teacher_id = serializers.CharField(source='teacher原创 2022-02-04 22:44:17 · 4514 阅读 · 0 评论 -
restframework序列化器中自定义字段write_only/read_only的添加位置
1.结论a. 必须添加在,你自定义的,字段括号里面 sms_code = serializers.CharField(max_length=6, min_length=4, write_only=True)b. 添加在其他的地方,比如extra_kwargs字典里面,不会生效原创 2022-02-01 23:19:33 · 3489 阅读 · 0 评论