python测试开发django-170.ORM查询之contains和icontains
2023-03-14 22:50:10 时间
前言
平常用ORM大部分使用的是get、filter、exclude这三种能满足基本的需求,有时我们需要满足一些复杂的查询场景,在页面上传不同参数满足查询需求。
ORM 条件查询使用field__
结合 condition 的方式来使用的,比如查询包含指定的字符,可以用contains和icontains。
contains和icontains 区别
比如有下面这张表
MyDjango>python manage.py shell
>>> Product.objects.filter(name__contains='yy')
<QuerySet [<Product: Product object (2)>, <Product: Product object (3)>]>
>>> Product.objects.filter(name__icontains='yy')
<QuerySet [<Product: Product object (2)>, <Product: Product object (3)>, <Product: Product object (4)>]>
>>>
contains表示精确大小写,icontains
中的i
表示忽略大小写
filter(name__contains='yy')
是查询name包含小写的yy的内容filter(name__icontains='yy')
是查询name包含yy的字符,不区分大小写
对应SQL语句
SQL 查询like 后面带上 BINARY 就是精确大小写查询
name__contains='yy'
对应sql语句where name like BINARY '%yy%'
name__icontains='yy'
对应SQL 语句where name like '%yy%'
/* BINARY精确大小写yy */
select * from yoyo_product where name like BINARY '%yy%';
/* 忽略大小写yy */
select * from yoyo_product where name like '%yy%';
相关文章
- 图像处理工具Python扩展库,你了解吗?
- 十个常用的损失函数解释以及Python代码实现
- 30 个数据科学工作中必备的 Python 包
- 如何在 Windows 上安装 Python
- 几行 Python 代码就可以提取数百个时间序列特征
- 使用Python快速搭建接口自动化测试脚本实战总结
- 哪种编程语言最适合开发网页抓取工具?
- 不要在 Python 中使用循环,这些方法其实更棒!
- 震惊!用Python探索《红楼梦》的人物关系!
- 如何最简单、通俗地理解Python模块?
- 酷炫,Python实现交通数据可视化!
- 为什么急于寻找Python的替代者?
- 30 个数据工程必备的Python 包
- 去字节面试被面这题能答上来吗?谈谈你对时间轮的理解?
- 火山引擎在行为分析场景下的 ClickHouse JOIN 优化
- 用Python爬取了某宝1166家月饼数据进行可视化分析,终于找到最好吃的月饼~
- 在 Linux 上试试这个基于 Python 的文件管理器
- Python列表解析式到底该怎么用?
- 如何快速把你的 Python 代码变为 API
- 十个Python初学者常犯的错误