Django
Python中Django框架的使用,使用过程中的各种问题以及解决方法记录
Cold autumn
凡心所向,素履以往。生如逆旅,一苇以航。
展开
-
Django模型中自定义查询器
在Django中提供了很多内置的查询器,但有时候并不满足我们实际业务需求,这个时候可以根据我们实际业务场景来自定义查询器。例如:自定义一个"不等于"查询器# 实现 不等于 查询器,并使用修饰器直接注册@Field.register_lookupclass NotEqual(Lookup): lookup_name = 'neq' def as_sql(self, compiler, connection): lhs, lhs_params = self.proces原创 2021-07-20 16:21:56 · 331 阅读 · 0 评论 -
Django、Flask模板中解决与其他模板解析语法冲突问题
Django模板中默认的变量解析符号为:{{}}。现在很多前端框架也都存在自己的模板解析符号。比如layui的也是{{}},当Django与layui一起使用时就会存在模板语法冲突的问题。解决方案:在需要解析的语法前后加入以下特定的解析语法:{% verbatim %}需要解析的语法{% endverbatim %}......原创 2021-02-07 16:26:14 · 374 阅读 · 0 评论 -
Django中常用数据操作相关方法与常用查询条件
Django中常用数据查询相关操作数据操作相关方法支持链式操作的方法不支持链式操作的方法数据操作相关方法支持链式操作的方法方法名说明all()查询表中所有的数据 eg:Model.objects.all()filter(查询条件)查询表中满足条件的所有数据 eg:Model.objects.filter(name=‘张三’) 查询所有name等于’张三’的数据具体查询条件下方另行介绍exclude(查询条件)与filter()逻辑相反。查询表中满足条件之外的所有数原创 2021-02-05 15:59:53 · 673 阅读 · 0 评论 -
Django模型中自定义字段类型
在使用Django模型创建表时,有时候不存在或者不满足条件我们想要的表字段类型。这时我们可以继承Django模型中的Field来实现自定义字段类型。如下所示代码创建了一个tinyint类型的字段:# 创建自定义字段类型:tinyintclass TinyIntField(models.Field): def __init__(self, *args, **kwargs): self.max_length = kwargs["max_length"] super(原创 2021-01-28 09:54:21 · 1298 阅读 · 0 评论 -
Django模型中创建表时打印创建表的SQL语句
在控制台中进入到项目根目录下输入以下命令即可看到:python manage.py sqlmigrate APP名称 0001输出如下所示:---- Create model TestA-- CREATE TABLE `test_a` ( `id` INTEGER AUTO_INCREMENT NOT NULL PRIMARY KEY, ......);---- Create model TestB-- CREATE TABLE `test_b` ( `id` INTE原创 2021-01-28 09:43:00 · 610 阅读 · 0 评论 -
Django中重写模型删除方法实现软删除
from django.db import modelsfrom django.db.models.query import QuerySetimport time# 自定义软删除查询基类class SoftDeleteQuerySetMixin(object): """ 当使用filter与all时所执行的操作类 """ def delete(self, soft=True): """ 重写删除方法 当soft为原创 2021-01-22 09:56:04 · 1359 阅读 · 2 评论 -
Django中自定义auth_user表
在创建Django模型时,有时候自带的auth_user表不符合我们自身的要求,这时就需要自定义父类的auth_user。在models.py中创建新的用户类,并继承系统自带的AbstractUserfrom django.db import modelsfrom django.contrib.auth.models import AbstractUserclass AdminUser(AbstractUser): # 继承了AbstractUser拥有的所有字段 # 自定义原创 2021-01-16 15:26:49 · 1175 阅读 · 0 评论 -
Django报错:Refused to display ‘http://xxx‘ in a frame because it set ‘X-Frame-Options‘ to ‘deny‘
在Django中使用framework时报错:Refused to display ‘http://xxx’ in a frame because it set ‘X-Frame-Options’ to ‘deny’原因:项目中的“X_FRAME_OPTIONS”设置不对X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在frame 中展示“X_FRAME_OPTIONS”有三个选项值:DENY :表示该页面不允许在 frame 中展示,即便是在相同域名的页面原创 2021-01-15 17:55:01 · 2870 阅读 · 2 评论 -
Django将已有的数据表自动生成模型
如果有已知的数据库及表格想要直接生成相应的模型类。进入到项目根目录然后运行下面代码则可以自动生成models模型文件python manage.py inspectdb > app_name/models.py原创 2021-01-14 16:10:32 · 455 阅读 · 0 评论 -
Django模型中常用的字段类型及选项整理
常用字段类型:模型字段名说明MySQL对应字段名AutoField自增字段,如果没有指定将自动添加一个名为"id"的自增主键字段int(11)IntegerField整数字段intBigIntegerField类似于IntegerField,一个64位的整数bigintSmallIntegerField类似于IntegerField,-32768到32767smallintPositiveIntegerField类似于IntegerField原创 2021-01-14 14:30:32 · 1078 阅读 · 0 评论 -
Django框架的基础使用
Django框架的基础使用创建Django项目修改项目为中文启动服务视图与url配置使用模板配置静态文件修改数据库配置为MySQL创建模型操作数据库创建Django项目django-admin.py startproject projectName运行成功之后的目录结构: . |-- projectName | |-- init .py | |-- asgi.py | |-- settings.py | |原创 2021-01-12 17:11:36 · 135 阅读 · 0 评论