敲代码敲到头发茂密
欲戴王冠,必承其重
展开
-
【Django项目开发】部门管理模块的开发(九)
from rest_framework . pagination import PageNumberPagination class GlobalPagination(PageNumberPagination) : #项目中默认的分页配置 page_size = 10 #每页显示的数据条数 page_size_query_param = 'size' #前端发送每页数目的参数名,例如:size=20 max_page_size = 100 #前端最多设置每页显示的数量。原创 2023-01-12 08:32:12 · 700 阅读 · 8 评论 -
【Django项目开发】django的信号机制(八)
通俗来说,信号就是通信双方约定的一种信息通知方式,双方通过信号来确定发生了什么事情,然后决定自己应该做什么。Django 中的信号用于在框架执行操作时解耦。当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作Django 中的信号主要包含以下三个要素:发送者(sender):信号的发出方。信号(signal):发送的信号本身。接收者(receiver):信号的接收者通知是信号中最常用的场景,比如当一个用户登录成功后,给该用户发送通知消息,或者在论坛、博客当你更新话题或者动态。原创 2023-01-16 09:03:05 · 841 阅读 · 2 评论 -
【Django项目开发】角色管理模块的开发(八)
3、用于给某一个角色批量授权的序列化2.2、授权和取消授权。原创 2023-01-10 08:18:33 · 749 阅读 · 2 评论 -
【Django项目开发】自定义Mixin方法(六)
但是在项目开发的过程中,这5个Mixin子类并不能满足所有的需求,例如进行批量删除操作,所以需要自定义Mixin类,将自定义的Mixin类放到utils工具包中。原创 2023-01-04 13:50:05 · 443 阅读 · 3 评论 -
【Django项目开发】权限功能模块的开发(七)
如果还有其他的操作,Mixin类中提供的方法不能满足要求,那么就需要再定义新的方法。其中增、删、改、查、这些操作ModelViewSet都已提供,代码无需再写。权限相关的包括增、删、改、查、其他、等操作.原创 2023-01-06 13:18:59 · 438 阅读 · 2 评论 -
【Django项目开发】权限、角色相关的模型设计(五)
哪些用户可以操作哪些资源就是权限,对整个后台系统进行权限控制,目的是为了避免系统的使用者因为权限控制的缺少而出现操作不当、数据泄露、流程卡住等问题角色表和权限表的关系是多对多name:角色名称permissions:和权限表的关联关系字段通俗来说,信号就是通信双方约定的一种信息通知方式,双方通过信号来确定发生了什么事情,然后决定自己应该做什么。Django 中的信号用于在框架执行操作时解耦。原创 2023-01-03 08:24:07 · 776 阅读 · 6 评论 -
【Django项目开发】用户认证功能开发(四)
2、settings.py指定使用的认证类JSONWebTokenAuthentication 3、重写jwt_response_payload_handler方法 原因是:Django系统提供的这个方法只返回了token值,并没有返回用户id和用户名称,需要重写该方法 4、JWT配置 还得在settings.py文件中指定token失效时间和指定访问路径,目的是:让项目运行时找到自己重写的方法; 5、配置路由 访问http://127.0.0.1:8000/api/user/login/即可进行测试D原创 2022-12-28 08:29:38 · 726 阅读 · 14 评论 -
【Django项目开发】用户模型功能开发(三)
Django认证系统提供了用户模型类User,具体位置:django.contrib.auth.models.User;因为Django认证系统提供的用户模型类User中缺少我本次项目中需要的字段,需要重写定义User模型类,最好不要和User重名,我以UserModel命令自定义的UserModel需要继承AbstractUser(User也继承了AbstractUser),同时还需要继承BaseModelphone:手机号real_name:真实名字roles:用户的角色。原创 2022-12-24 15:59:30 · 622 阅读 · 7 评论 -
【Django项目开发】自动生成接口文档(二)
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'drf_yasg2', #自动生成原创 2022-12-21 17:22:29 · 1092 阅读 · 13 评论 -
【Django项目开发】功能菜单模块的开发(一)
3、on_delete=models.CASCADE:表示当父表的数据删除时,子表的数据怎么变化;models.CASCADE:表示父表中关联的子表数据也将删除。1、删除数据并不是真正的将数据删除(数据库中的数据清掉),而是将该数据的delete_flag设置为1;查询某个父菜单下面的所有子菜单,需要传递一个参数,pid(父菜单id)2、当删除父级菜单时,当前父级菜单下的所有子级菜单也需要删除。当父表获取子表数据的时候时:父表模型对象.children。查询所有菜单列表,不需要传递参数。原创 2022-12-19 17:58:15 · 822 阅读 · 47 评论