Django--模型层
13个方法 all() filter() get() reverse() order_by() exclude() values() values_list() count() distinct() exists() first() last() ? 神奇的双下滑操作 查看orm内部sql语句的方法有哪些 1、如果是queryset对象,那么可以点query直接查看该queryset的内部的sql语句 2、在Django项目的配置文件中,配置一下参数就可以实现所有的orm在查询的时候自动打印对应的sql语句 LOGGING = { ‘version‘: 1,‘disable_existing_loggers‘: False,‘handlers‘: { ‘console‘:{ ‘level‘:‘DEBUG‘,‘class‘:‘logging.StreamHandler‘,},‘loggers‘: { ‘django.db.backends‘: { ‘handlers‘: [‘console‘],‘propagate‘: True,‘level‘:‘DEBUG‘,} } ?
# 查询价格大于200的书籍 # res = models.Book.objects.filter(price__gt=200) # print(res) # 查询价格小于200的书籍 # res = models.Book.objects.filter(price__lt=200) # print(res) # 查询价格大于等于200.22的书籍 # res = models.Book.objects.filter(price__gte=200.22) # print(res) # 查询价格小于等于200.22的书籍 # res = models.Book.objects.filter(price__lte=200.22) # print(res) # 查询价格要么是200,要么是300,要么是666.66 # res = models.Book.objects.filter(price__in=[200,300,666.66]) # print(res) # 查询价格在200到800之间的 # res = models.Book.objects.filter(price__range=(200,800)) # 两边都包含 # print(res) # 查询书籍名字中包含p的 """原生sql语句 模糊匹配 like % _ """ # res = models.Book.objects.filter(title__contains=‘p‘) # 仅仅只能拿小写p # res = models.Book.objects.filter(title__icontains=‘p‘) # 忽略大小写 # print(res) # 查询书籍是以三开头的 # res = models.Book.objects.filter(title__startswith=‘三‘) # res1 = models.Book.objects.filter(title__endswith=‘p‘) # print(res) # print(res1) # 查询出版日期是2017的年(******) res = models.Book.objects.filter(create_time__year=‘2017‘) print(res) ? ? ? 多表操作 一对多(foreignKey) 一对一(OneToOneField)? 可以用foreignKey来代替)ForeignKey(unique=True) 一对多和一对一两个关键字创建出来的字段会自动加上_id后缀 多对多(MangToManyField) 该字段并不会真正的在表中展示出来,它仅仅只是一个虚拟字段 1、告诉orm自动创建第三张表 2、帮助orm跨表查询
一对多字段的跨表查询 多对多字段的跨表查询 orm跨表查询 基于对象的跨表查询 基于双下划线的查询 聚合查询 aggtegate from django.db.models import Sum,Max,Min,Avg,Count ? 分组 annotate F与Q查询 F查询 Q查询 q = Q() q.connector = ‘or‘ # 修改查询条件的关系 默认是and q.children.append((‘title__contains‘,‘三国演义‘)) # 往列表中添加筛选条件 q.children.append((‘price__gt‘,444)) # 往列表中添加筛选条件 res = models.Book.objects.filter(q) # filter支持你直接传q对象 但是默认还是and关系 print(res) ? ORM常见字段 ORM事物操作 ORM查询优化 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |