Django
文章平均质量分 82
Django是一个开源的Python Web应用框架,采用了 MVT的框架模式,即模型M,视图V和模版T ,最早于2005年发布。Django被认为是“大而全“的重量级Web框架,其自带大量的常用工具和组件(比如数据库ORM组件、用户认证、权限管理、分页、缓存), 甚至还自带了管理后台Admin,适
GG_Bonin
这个作者很懒,什么都没留下…
展开
-
排序和过滤类源码、RBAC的介绍和使用、simplu美化
RBAC(Role-Based Access Control )基于角色的访问控制,在RBAC中-----权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。这极大地简化了权限的管理,这样管理都是层级相互依赖的,权限赋予给角色而把角色又赋予用户,这样的设计管理起来很方便RBAC权限管理的模式最适合公司内部的管理系统,不适合对外互联网用户的系统。-公司内表与表关系用户表:用户信息角色表:部门权限表:各种权限。原创 2022-10-13 22:40:15 · 263 阅读 · 0 评论 -
jwt认证原理
有时候我们可能需要自己定义用户表这时候再直接用dif-jwt快速方法就不行了,我们需要自己写token第一步再models中定义user表并数据迁移第二步在视图中自己写登陆接口try:# 获取username、password# 使用用户存在再使用djagnorestframework-jwt模块提供的签发token的函数,生成tokenreturn Response({'code':100,'msg':'登录成功','token':token})# 获取不到用户抛异常。原创 2022-10-12 22:24:09 · 910 阅读 · 0 评论 -
dif内置三大认证类与全局异常、API接口文档
第一步:写一个类继承BaseFilterBackend# 重写某个方法第二步:重写filter_queryset方法# 在这里面实现过滤,一定要返回qs对象,过滤后的数据return qs第三步:配置在视图类中# 指定自定义的过滤类第四步:前端访问形式name=程序&perce=66# 精准搜索条件间是并且的关系ps:多个过滤类和排序类是可以共用的,在视图类的filter_backends=[],可以配置多个,执行顺序是从左往右,因此最左边的要尽可能的先过滤掉大部分数据。原创 2022-10-11 19:01:38 · 311 阅读 · 0 评论 -
dif分页、排序、过滤功能
page_size:每页显示的条数page_query_param:前端发送的页数关键字名,默认为"page"page_size_query_param:前端发送的页数数目关键字名,默认为Nonemax_page_size:限制通过size查询每页最大的条数。原创 2022-10-10 21:25:20 · 570 阅读 · 0 评论 -
权限类与频率类
比如:一个鸭子类中有run和eat方法,那么我不需要显示继承这个类只要我的类中也有run和eat方法那么我就是鸭子类。方式二:dif源码中的方式 父类中写这个方法,但是不具体实现直接抛异常,当没有重写这个方法时就执行父类中的抛异常。第二步:重写get_cache_key,返回唯一的字符串会以这个字符串做频率限制。第四步:在配置文件中写 DEFAULT_THROTTLE_RATES。但是:要是在我的类中的方法写错了那么它就不是这个类型了会出现问题,因此有两种解决方式。在配置文件settings.py中。原创 2022-10-09 19:26:20 · 171 阅读 · 0 评论 -
自动生成路由
SimpleRouter与DefaultRouter区别:DefaultRouter比SimpleRouter多一个跟路径显示所有注册过的路由。原创 2022-10-09 15:32:16 · 639 阅读 · 0 评论 -
dif请求与响应
在原生Django中put请求提交的数据在requuest.POST中是取不到的而在DRF的Request类通过request.data就可以获取POST、PUT、PATCH请求方式解析后的数据请求的所有 url 拼接参数都被解析到 request.中,原生Django中request.GET功能一样ps:其他的用法与之前原生Django一样,继承APIView后每一次请求都是一个新的request。原创 2022-09-29 21:46:36 · 440 阅读 · 0 评论 -
序列化组件
CharField:max_length=None, min_length=None, allow_blank=False, trim_whitespace=True BooleanField:BooleanField() IntegerField:IntegerField(max_value=None, min_value=None) DecimalField:DecimalField(max_digits, decimal_places, coerc原创 2022-09-27 21:02:14 · 357 阅读 · 0 评论 -
APIView与序列化组件使用
1.只要继承APIView都没有csrf的认证2.视图类中使用的request变成了dif提供的Request类的对象3.执行视图类的方法之前,执行了3大认证(认证、权限、频率)4.在执行三大认证和视图类的方法过程中只要报错都会被捕获处理。原创 2022-09-26 20:29:22 · 527 阅读 · 0 评论 -
后端drf开发
APL(Application Programming Interface),就是应用程序接口在项目开发中是必要的组成部分之一,当前后端在联动调试的时候需要通过接口来请求数据与响应数据从而形成一个完整的程序REST全称(Representional State Transfer),中文意思是表述:表征性状态转移首次出现在2000年 Roy Fielding 的博士论文中,REST与技术无关代表的是一种软件架构风格,尤其适用于前后端分离的应用模式中。原创 2022-09-24 15:04:11 · 705 阅读 · 0 评论 -
Django之csrf与auth模块操作
auth模块是强大的django自带的一个用户认证模块,我们在开发网站的时候不可避免的需要用到用户的登录、注册等功能有了auth模块可以给我们带来更快的编写功能,django在执行数据库迁移命令后会产生一个auth_user表配合auth模块做用户认证,该表还是django admin后台管理默认的表# admin后台管理员账号创建。原创 2022-09-13 23:25:35 · 327 阅读 · 0 评论 -
Form组件
当需要展示大量数据的时候如果同时一下子全部加载到页面上给人的观看感肯定不佳,同时也有卡死的现象,所以我们要用到分页指定一个页面展示几条这样就简介清楚自定义分页器封装代码需要用的时候直接复制即可,但是其中原理最好能掌握"""封装分页相关数据:param current_page: 当前页:param all_count: 数据库中的数据总条数:param per_page_num: 每页显示的数据条数:param pager_count: 最多显示的页码个数"""try:# 总页码。原创 2022-09-08 21:52:18 · 356 阅读 · 0 评论 -
Django与Ajax
同步交互:客户端发出一个请求后需要等待服务器响应结束后才能发出第二个请求异步交互:客户端发出一个请求后无需等待服务器响应结束就可以发第二个请求Ajax异步提交 局部刷新,用案例来讲就是当你在注册的时候很多网址在你输入用户名时就会判断当前用户是否已经注册但是网页并没有朝后端发送请求这就是Ajax的异步提交// 基础语法格式$.ajax({url:'', // 控制数据提交的地址不写就是当前服务器地址type:'', // 控制请求方式默认为get请求data:{}, // 组织提交的数据。原创 2022-09-07 20:47:47 · 390 阅读 · 0 评论 -
模型层知识点补充
【代码】模型层知识点补充。常见字段与常见字段参数,多对多关系表创建三种方式原创 2022-09-06 22:10:37 · 266 阅读 · 0 评论 -
ORM数据库查询操作
【代码】ORM数据库查询操作。F与Q查询及查询优化、分组查询等原创 2022-09-06 20:22:40 · 379 阅读 · 0 评论 -
ORM数据库操作
【代码】ORM数据库操作。ORM就是为了让不会数据库操作的python程序员也能够操作数据库处理数据,而处理数据无非就是对数据的增、删、改、查,因此ORM给我们提供了各种操作数据的关键字原创 2022-09-05 21:48:15 · 1049 阅读 · 0 评论 -
Django之模版层
有时候我们也可以自己才定义过滤器制定一些自己想要的功能,django中就可以自定义标签,但是必须得先做几个准备步骤:1.在应用下创建一个名为templatetags文件夹2.在该文件夹内创建任意名称py文件3.在该py文件内编写自定义相关代码# 固定语句# 自定义过滤器@register.filter(name='自定名字')# 自定义标签函数@register.simple_tag(name='自定名字')# 自定义inclusion_tag。原创 2022-09-03 20:55:09 · 158 阅读 · 0 评论 -
Django之视图层
CBV基于类的视图,就是使用了类来处理用户的请求,不同的请求我们可以在类中使用不同方法来处理,这样大大的提高了代码的可读性。定义的类要继承父类 View,所以需要先引入库:通过父类 View 提供的一个静态方法 as_view() ,as_view 方法是基于类的外部接口, 他返回一个视图函数,调用后请求会传递给 dispatch 方法,dispatch 方法再根据不同请求来处理不同的方法。原创 2022-09-03 18:51:09 · 419 阅读 · 0 评论 -
Django之路由匹配
根据用户请求的URL链接来判断对应的处理程序,并返回处理结果路由配置在urls.py文件中,每一条配置对应相应的处理方法。Django版本不同对应的urls.py配置也有点不一样path("网址后缀",函数名)页面上的一些超链接、重定向等路由都是写死的,一旦路由发生变化则会导致所有页面相关链接失效,而反向解析就是用来防止出现该问题的。当一个项目特别大的时候会有很多应用,这所有的应用的路由都写在项目文件内的urls.py文件内就会出现很多问题,同理还有static、templates文件夹。原创 2022-09-01 22:06:17 · 778 阅读 · 0 评论 -
Django数据库操作
ORM全称(object relational mapping),对象关系映射,通过ORM实现使用操作对象的方式来操作数据库中的数据ORM的存在就是让不会MySQL的python程序员 使用python的语法简单快捷的操作MySQL。原创 2022-08-31 19:50:51 · 361 阅读 · 0 评论