django models filter查询条件
1.多表连接查询:当我知道这点的时候顿时觉得django太NX了。
class A(models.Model):
name = models.CharField(u’名称’)
class B(models.Model):
aa = models.ForeignKey(A)
B.objects.filter(aa__name__contains=‘searchtitle’)
1.5 我叫它反向查询,后来插入记录1.5,当我知道的时候瞬间就觉得django太太太NX了。
class A(models.Model):
name = models.CharField(u’名称’)
class B(models.Model):
aa = models.ForeignKey(A,related_name=“FAN”)
bb = models.CharField(u’名称’)
查A: A.objects.filter(FAN__bb=‘XXXX’),都知道related_name的作用,A.FAN.all()是一组以A为外键的B实例,可前面这样的用法是查询出所有(B.aa=A且B.bb=XXXX)的A实例,然后还可以通过__各种关系查找,真赤激!!!
2.条件选取querySet的时候,filter表示=,exclude表示!=。
querySet.distinct() 去重复
__exact 精确等于 like ‘aaa’
__iexact 精确等于 忽略大小写 ilike ‘aaa’
__contains 包含 like ‘%aaa%’
__icontains 包含 忽略大小写 ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一个list范围内
__startswith 以…开头
__istartswith 以…开头 忽略大小写
__endswith 以…结尾
__iendswith 以…结尾,忽略大小写
__range 在…范围内
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False
例子:
q1 = Entry.objects.filter(headline__startswith=“What”)
q2 = q1.exclude(pub_date__gte=datetime.date.today())
q3 = q1.filter(pub_date__gte=datetime.date.today())q = q.filter(pub_date__lte=datetime.date.today())
q = q.exclude(body_text__icontains=“food”)
即q1.filter(pub_date__gte=datetime.date.today())表示为时间>=now,q1.exclude(pub_date__gte=datetime.date.today())表示为<=now
2013/12/12补充:
“在django models中取得一个字段的distinct值”。就是select distinct xxx from table_name …这样的功能。使用values会生成ValuesQuerySet(形如N个dict组成的list),猜测大数据无额外性能影响,毕竟queryset系列都是使用时才查询操作的。
xxxx.objects.values(“field_name”).distinct()
#或者
xxxx.objects.distinct().values(“field_name”)
这两句生成的sql语句相同,原帖地址:http://blog.csdn.net/tsbob/article/details/1340293。
关于缓存:
queryset是有缓存的,a = A.objects.all(),print [i for i in a].第一次执行打印会查询数据库,然后结果会被保存在queryset内置的cache中,再执行print的时候就会取自缓存。
很多时候会遇到仅需判断queryset是否为空的情况,可以1. if queryset:pass 2.if queryset.count>0:pass 3.if queryset.exists():pass. 三种方式性能依次提升。
当queryset非常巨大时,cache会成为问题。此时可以queryset.iterator(),迭代器的用处就不多说了,根据具体需求情况使用。
django models filter查询条件相关推荐
- django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct
2019独角兽企业重金招聘Python工程师标准>>> 1.多表连接查询:当我知道这点的时候顿时觉得django太NX了. class A(models.Model): ...
- python django model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct[转]...
1.多表连接查询:当我知道这点的时候顿时觉得django太NX了. class A(models.Model): name = models.CharField(u'名称') clas ...
- django filter查询多选_Django:使用filter的pk进行多值查询操作
由于想要做收藏夹的功能,所以希望能够一次性查询出所有id的对象,查看文档,找到了如下方法 pk是primary key的缩写,顾名思义pk_in就是primary key在某一个范围内,具体操作(以自 ...
- 067:【Django数据库】ORM查询条件详解-range
[Django数据库]ORM查询条件详解-range range: 判断某个 field 的值是否在给定的区间中.示例代码如下: # views.py文件内容:from datetime import ...
- django filter查询多选_动态filter查询数据Django实现方法
这是我在学习Django时看到的关于动态filter查询数据Django实现方法.当时很受用,解决了我在工作中遇到的一个问题.可能有朋友会需要,转来玩蛇网python学习平台和大家一同分享下. 在平时 ...
- django之ORM查询操作(二)
文章目录 查询集 基础条件查询--针对一个属性 F和Q对象 聚合函数 统计总的阅读量 关联查询 基础关联查询 内连接查询 自关联查询 查询集 查询集: 表示从数据库中获取的模型对象集合 在管理器上调用 ...
- Django的model查询操作 与 查询性能优化
Django的model查询操作 与 查询性能优化 1 如何 在做ORM查询时 查看SQl的执行情况 (1) 最底层的 django.db.connection 在 django shell 中使用 ...
- Django聚合分组查询(F与Q查询|ORM查询优化|常见字段参数)
文章目录 一.正反向查询进阶操作 二.聚合查询 三.分组查询 四.ORM再次添加字段 五.F与Q查询 五.ORM查询优化 六.事务操作 七.模型层常见字段 八.ORM常见字段参数 九.多对多三种创建方 ...
- Django之QuerySet 查询
首先来看下如何查询.我们在网页中增加书名的查询链接 后端的查询处理代码:这里由于authors是manytomanyfiled,因此我们这里用r.authors.all().first()来查询符合条 ...
- Django数据库操作查询
文章目录 Django数据库操纵查询 F和Q对象: 1.F对象: 2.Q对象: 2.聚合函数和排序函数 1.聚合函数: 2.排序函数: 3.级联查询: 1.关联查询 关联过滤查询 4.查询集 **查询 ...
最新文章
- linux入门之目录结构
- ng-options渲染的第一项为空的解决办法
- java for循环乘法表_JAVA-for循环案例(冒泡、九九乘法表、素数、菱形)
- Delphi自动提交网页表单和获取框架网页源码
- yii添加模型基础类
- Skywalking 结束孵化,成为 Apache 基金会顶级项目
- HD-SDI光端机有哪些优势?
- Java连载1-概述常用的dos命令
- 查询很慢会导致锁表吗_MySQL的insert into select 引发锁表
- Emacs基本操作说明
- JixiPix Rip Studio入门教程:如何修改图层和背景样式?
- 用C语言写一个查单词的小demo
- 【第四课】UAV倾斜摄影测量三维建模技术软件——Smart 3d
- 请立即卸载这款 IDEA 插件
- 芬兰建筑师帕特里克艾瑞克森先生一行访问云创
- 【论文笔记】DeiT论文阅读笔记
- java输入输出流数组_详解Java中ByteArray字节数组的输入输出流的用法
- 蓝天白云青山绿水还有清风吹斜阳......
- windows 查看wifi密码命令
- 二十多个免费高清图片素材网站送给你
热门文章
- 文件转换swf/flv
- ICCV2019论文题目中文列表
- 计算机附件常用工具,Windows附件常用工具
- python天涯帖子_Python爬虫实战(二):爬取天涯帖子(只看楼主)
- iPhone屏幕尺寸和分辨率
- 社会工程学主要学习内容及书籍推荐
- 网页抽奖程序(年会,开幕式等)
- 现场抽奖小程序_抽奖小程序助手转盘活动微信抽奖系统
- 虚拟仿真实验室 服务器,中国美术学院|虚拟仿真实验教学共享平台
- [源码和文档分享]基于VC++实现的中国象棋-双人象棋游戏