django-orm-查询基本操作
  TEZNKK3IfmPf 2023年11月14日 76 0
小结
模型类.objects.filter(字段__查询词=值)

以下内容主要介绍查询词的操作

查看查询集的sql语句

查询集.query

exact, iexact

等于查询

一方查找多方,条件写法

情况一,多方表的外键没有定义关联名称

一方类名.objects.filter(多方类名小写__多方字段__查询词=)

情况二,多方表的外键写义了关联名称 related_query_name 的值

一方类名.objects.filter(多方外键related_query_name的值__多方字段__查询词=)

contains,icontains

包含查找

in

成员查找

gt, lt, gte, lte

比较查找

startswith, istartswith

起点查找

date, year 等等

日期查找

date 值要是datetime类型

year 等值要是int类型

isnull

判空

值为布尔类型

regex, iregex

正则表达式查找

详情

exact

精确查找,相当于等于

模型类.objects.filter(字段__exact=值)
  • 说明
    django-orm-查询基本操作_字段
  • 例子

数据表

django-orm-查询基本操作_正则表达式_02

精确查找

django-orm-查询基本操作_字段_03

结果

django-orm-查询基本操作_类名_04

  • 扩展查询时大小写的敏感度
    django-orm-查询基本操作_sql语句_05
    • linux大小写敏感utf8_bin,情况2
    • windows都不敏感

查看sql语句

介绍如何查看sql语句

查询集 = 模型类.objects.filter(查询条件)
查询集.query
  • 说明
    django-orm-查询基本操作_字段_06

  • 例子

查询

django-orm-查询基本操作_字段_07

结果

django-orm-查询基本操作_sql语句_08

iexact

效果相当于exact,不过它是模糊查找

  • 说明
    django-orm-查询基本操作_类名_09

  • 例子

django-orm-查询基本操作_字段_10
结果

django-orm-查询基本操作_正则表达式_11

  • 补充,like 与 =

name = ‘张三’

name like ‘张三’

略有不同

exact 与 iexact 区别

django-orm-查询基本操作_字段_12

contains 与 icontains

查询包含

带i 表示忽略大小写

  • 说明

django-orm-查询基本操作_字段_13

django-orm-查询基本操作_外键_14

  • 例子

django-orm-查询基本操作_sql语句_15

结果

django-orm-查询基本操作_sql语句_16

  • contains与exact的区别

django-orm-查询基本操作_正则表达式_17

in

成员

  • 说明

django-orm-查询基本操作_类名_18

  • 例子
    django-orm-查询基本操作_类名_19

  • 例子,查找id为1 2 3 的文章,的分类

测试表

django-orm-查询基本操作_正则表达式_20

分析

即然找分类
就找分类表
此处是关联查找

django-orm-查询基本操作_外键_21

注意
此处的查询条件

根据分类,反向查找文章(外键在文章)

视图中查找
多方行对象.一方类名小写_set.all()得到所有

在查询条件中查找
多方类名.objects.filter(一方类名__一方字段__查询词=值)

通过这种方式查

条件中的反向查询

多方找一方,两种查询方式

  • 普通查找
多方类名.objects.filter(一方类名小写__一方字段__查询词=)

模型类是这样的

django-orm-查询基本操作_外键_22

反向查找是这样的

django-orm-查询基本操作_字段_23

笔记

django-orm-查询基本操作_类名_24

  • 如果外键中定义时加入了 related_query_name时
多方类名.objects.filter(一方类名外键related_query_name的值__一方字段__查询词=)

django-orm-查询基本操作_正则表达式_25

django-orm-查询基本操作_sql语句_26
红框反查一方表

如果比对一方表id,那么__id可以不写

django-orm-查询基本操作_sql语句_27

  • 例子 查询 一堆图书中的所有分类有哪些
    django-orm-查询基本操作_字段_28

gt, lt, gte, lte

大于,小于,大于等于,小于等于

  • 说明
    django-orm-查询基本操作_类名_29

  • 例子
    django-orm-查询基本操作_字段_30

startswith, istartswith

以某某开始

  • 例子

django-orm-查询基本操作_字段_31

django-orm-查询基本操作_外键_32

  • 小结
    django-orm-查询基本操作_正则表达式_33

date, year

时间相关类型

  • 例子

django-orm-查询基本操作_类名_34
提取 2018.4.4日发布的文章

查询语句

django-orm-查询基本操作_外键_35

对应的sql

django-orm-查询基本操作_外键_36

日期字段_date = 日期时间对象
  • 例子,year, month day week_day

django-orm-查询基本操作_sql语句_37

django-orm-查询基本操作_字段_38

django-orm-查询基本操作_正则表达式_39

时间范围的过滤 range

django-orm-查询基本操作_字段_40

django-orm-查询基本操作_类名_41

django-orm-查询基本操作_字段_42

django-orm-查询基本操作_外键_43

isnull

判null

  • 例子,找出所有日期 空空的数据

值为bool值
django-orm-查询基本操作_正则表达式_44

  • 笔记

django-orm-查询基本操作_外键_45

rege, irege

正则表达式查找

  • 例子

django-orm-查询基本操作_正则表达式_46

django-orm-查询基本操作_sql语句_47

  • 笔记

django-orm-查询基本操作_sql语句_48

跨表查询

django-orm-查询基本操作_正则表达式_49

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   59   0   0 djangopython
  TEZNKK3IfmPf   2023年11月15日   20   0   0 django
  TEZNKK3IfmPf   2023年11月14日   224   0   0 查询mysql
  TEZNKK3IfmPf   2024年05月17日   49   0   0 查询mysql索引
  TEZNKK3IfmPf   2023年11月14日   20   0   0 查询
  TEZNKK3IfmPf   2023年11月15日   24   0   0 django时间
  TEZNKK3IfmPf   2023年11月15日   270   0   0 djangosearch
  TEZNKK3IfmPf   2023年11月15日   33   0   0 djangopython
  TEZNKK3IfmPf   2024年05月31日   31   0   0 select查询
TEZNKK3IfmPf