4. 字段属性和选项4.1 模型类属性命名限制
- 不能是python的保留关键字 。
- 不允许使用连续的下划线,这是由django的查询方式决定的 。
- 定义属性时需要指定字段类型 , 通过字段类型的参数指定选项,语法如下:
4.2 字段类型使用时需要引入django.db.models包,字段类型如下:
4.3 字段选项通过选项实现对字段的约束,选项如下:
对比:null是数据库范畴的概念,blank是后台管理页面表单验证范畴的 。
经验:
当修改模型类之后,如果添加的选项不影响表的结构,则不需要重新做迁移,商品的选项中default和blank不影响表结构 。
参考文档:
python.usyiyi.cn/translate/django_182/index.html" rel="external nofollow noreferrer">http://python.usyiyi.cn/translate/django_182/index.html
5. 查询5.1 mysql的日志文件mysql.log是mysql的日志文件,里面记录的对MySQL数据库的操作记录 。默认情况下mysql的日志文件没有产生 , 需要修改mysql的配置文件 , 步骤如下:
- 使用下面的命令打开mysql的配置文件,去除68,69行的注释,然后保存 。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
- 重启mysql服务,就会产生mysql日志文件 。
sudo service mysql restart
- 打开MySQL的日志文件 。
/var/log/mysql/mysql.log 是mysql日志文件所在的位置 。使用下面的命令可以实时查看mysql的日志文件:
sudo tail -f /var/log/mysql/mysql.log5.2 查询函数通过模型类.objects属性可以调用如下函数,实现对模型类对应的数据表的查询 。
get示例:
例:查询图书id为3的图书信息 。
all方法示例:
例:查询图书所有信息 。
filter方法示例:
条件格式:
模型类属性名__条件名=值
查询图书评论量为34的图书的信息:
a) 判等 条件名:exact
例:查询编号为1的图书 。# Django models 语法BookInfo.objects.get(id=1)
b) 模糊查询例:查询书名包含’传’的图书 。contains
BookInfo.objects.filter(btitle__contains='传')
例:查询书名以’部’结尾的图书 endswith 开头:startswithBookInfo.objects.filter(btitle__endswith='部')
c)空查询 isnull例:查询书名不为空的图书 。isnullselect * from booktest_bookinfo where btitle is not null;
# Django models 语法BookInfo.objects.filter(btitle__isnull=False)
d)范围查询 in例:查询id为1或3或5的图书 。select * from booktest_bookinfo where id in (1,3,5);
# Django models 语法BookInfo.objects.filter(id__in = [1,3,5])
e)比较查询 gt(greate than) lt(less than) gte(equal) 大于等于lte 小于等于
例:查询id大于3的图书 。Select * from booktest_bookinfo where id>3;
# Django models 语法BookInfo.objects.filter(id__gt=3)
f)日期查询# 例:查询1980年发表的图书 。BookInfo.objects.filter(bpub_date__year=1980)
# 例:查询1980年1月1日后发表的图书 。from datetime import dateBookInfo.objects.filter(bpub_date__gt=date(1980,1,1))
exclude方法示例:# 例:查询id不为3的图书信息 。BookInfo.objects.exclude(id=3)
order_by方法示例:作用:进行查询结果进行排序 。
# 例:查询所有图书的信息,按照id从小到大进行排序 。BookInfo.objects.all().order_by('id')
# 例:查询所有图书的信息,按照id从大到小进行排序 。BookInfo.objects.all().order_by('-id')
# 例:把id大于3的图书信息按阅读量从大到小排序显示 。BookInfo.objects.filter(id__gt=3).order_by('-bread')
6. F对象作用:用于类属性之间的比较 。使用之前需要先导入:
from django.db.models import F
# 例:查询图书阅读量大于评论量图书信息 。BookInfo.objects.filter(bread__gt=F('bcomment'))
# 例:查询图书阅读量大于2倍评论量图书信息 。BookInfo.objects.filter(bread__gt=F('bcomment')*2)
7. Q对象作用:用于查询时条件之间的逻辑关系 。not and or,可以对Q对象进行&|~操作 。使用之前需要先导入:
from django.db.models import Q
# 例:查询id大于3且阅读量大于30的图书的信息 。BookInfo.objects.filter(id__gt=3, bread__gt=30)BookInfo.objects.filter(Q(id__gt=3)&Q(bread__gt=30))
# 例:查询id大于3或者阅读量大于30的图书的信息 。BookInfo.objects.filter(Q(id__gt=3)|Q(bread__gt=30))
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Asp.Net Core6.0中MediatR的应用CQRS
- 支持JDK19虚拟线程的web框架之四:看源码,了解quarkus如何支持虚拟线程
- 1.docker的基本使用
- 21 基于SqlSugar的开发框架循序渐进介绍
- 明日方舟雪雉模组雪雉的宝贝存钱罐效果怎么样
- 苹果13什么时候上市的几月份_苹果13在几月份上市
- ysl416唇釉味道怪怪的_圣罗兰416唇釉什么味道
- 米饭的英语怎么读 米饭英语
- 三星zFlip3参数配置_三星zFlip3配置详情
- iphone13买多大内存的合适_怎么选择