Django第25部分:如何进行高级字段查询操作?

2026-06-10 22:426阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计484个文字,预计阅读时间需要2分钟。

Django第25部分:如何进行高级字段查询操作?

学习笔记,包含以下内容:- 参考数据库操作(CRUD操作)- 字段查询- 字段查询是指利用SQL语句中的WHERE子句进行查询- 字段查询需通过QuerySet的filter()、exclude()和get()方法的关键字参数指定

学习笔记,仅供参考



数据库的操作(CRUD操作)



字段查询



字段查询是指指定SQL语句中利用WHERE子句进行查询,字段查询需要通过QuerySet的filter(), exclude() 和 get()方法的关键字参数指定。



  • 举个例子
models.Author.objects.filter(age__gt = 20)
#对应的sql语句
SELECT .... WHERE age > 20;



查询谓词



  • ​​__exact​​ : 等值匹配
models.Author.objects.filter(id__exact=1)
#对应的sql语句
SELECT ... WHERE id = 1



  • ​​__contains​​ : 包含指定值
models.Author.objects.filter(name__contains='山')
#对应的sql语句
SELECT ... WHERE name like '%山%'


Django第25部分:如何进行高级字段查询操作?


  • ​​__startswith​​ : 以 XXX 开始,区分大小写
models.Author.objects.filter(name__startswith='小')
#对应的sql语句
SELECT ... WHERE name LIKE '小%';



  • ​​__gt​​ : 大于


  • ​​gte​​:大于等于


  • ​​__lt​​ : 小于


  • ​​__lte​​ : 小于等于


  • ​​__in​​ : 查找数据是否在指定范围内
models.Author.objects.filter(country__in=['中国','日本','韩国'])
#对应的sql语句
SELECT ... WHERE country in ('中国','日本','韩国')



  • ​​__range​​: 查找数据是否在指定的区间范围内
# 查找年龄在某一区间内的所有作者
models.Author.objects.filter(age__range=(20,30))
#对应的sql语句
SELECT ... WHERE age BETWEEN 20 and 30;



  • 详细内容参见:
  • ​​Django1.11.6文档​​

本文共计484个文字,预计阅读时间需要2分钟。

Django第25部分:如何进行高级字段查询操作?

学习笔记,包含以下内容:- 参考数据库操作(CRUD操作)- 字段查询- 字段查询是指利用SQL语句中的WHERE子句进行查询- 字段查询需通过QuerySet的filter()、exclude()和get()方法的关键字参数指定

学习笔记,仅供参考



数据库的操作(CRUD操作)



字段查询



字段查询是指指定SQL语句中利用WHERE子句进行查询,字段查询需要通过QuerySet的filter(), exclude() 和 get()方法的关键字参数指定。



  • 举个例子
models.Author.objects.filter(age__gt = 20)
#对应的sql语句
SELECT .... WHERE age > 20;



查询谓词



  • ​​__exact​​ : 等值匹配
models.Author.objects.filter(id__exact=1)
#对应的sql语句
SELECT ... WHERE id = 1



  • ​​__contains​​ : 包含指定值
models.Author.objects.filter(name__contains='山')
#对应的sql语句
SELECT ... WHERE name like '%山%'


Django第25部分:如何进行高级字段查询操作?


  • ​​__startswith​​ : 以 XXX 开始,区分大小写
models.Author.objects.filter(name__startswith='小')
#对应的sql语句
SELECT ... WHERE name LIKE '小%';



  • ​​__gt​​ : 大于


  • ​​gte​​:大于等于


  • ​​__lt​​ : 小于


  • ​​__lte​​ : 小于等于


  • ​​__in​​ : 查找数据是否在指定范围内
models.Author.objects.filter(country__in=['中国','日本','韩国'])
#对应的sql语句
SELECT ... WHERE country in ('中国','日本','韩国')



  • ​​__range​​: 查找数据是否在指定的区间范围内
# 查找年龄在某一区间内的所有作者
models.Author.objects.filter(age__range=(20,30))
#对应的sql语句
SELECT ... WHERE age BETWEEN 20 and 30;



  • 详细内容参见:
  • ​​Django1.11.6文档​​