广东外贸网站建设,网站建设中通知,外国大气网站,网站建设费无形资产摊销1.常用模糊查询的方法 queryset中支持链式操作
bookBook.objects.all().order_by(-nid).first()
只要返回的是queryset对象就可以调用其他的方法,直到返回的是对象本身
大于、大于等于、小于、小于等于#xff1a;
# __gt 大于
# __gte 大于等于
# __lt 小于
…1.常用模糊查询的方法 queryset中支持链式操作
bookBook.objects.all().order_by(-nid).first()
只要返回的是queryset对象就可以调用其他的方法,直到返回的是对象本身
大于、大于等于、小于、小于等于
# __gt 大于
# __gte 大于等于
# __lt 小于
# __lte 小于等于Student.objects.filter(age__gt10) # 查询年龄大于10岁的学生
Student.objects.filter(age__gte10) # 查询年龄大于等于10岁的学生
Student.objects.filter(age__lt10) # 查询年龄小于10岁的学生
Student.objects.filter(age__lte10) # 查询年龄小于等于10岁的学生特别注意这里的下划线是双下划线
不等于/不包含于
Student.objects.filter().excute(age10) # 查询年龄不为10的学生
Student.objects.filter().excute(age__in[10, 20]) # 查询年龄不在 [10, 20] 的学生数据库 like操作 模糊查询常用的操作
# __exact 精确等于 like aaa
# __iexact 精确等于 忽略大小写 ilike aaa
# __contains 包含 like %aaa%
# __icontains 包含,忽略大小写 ilike %aaa%但是对于sqlite来说contains的作用效果等同于icontains。
# __startswith 以…开头
# __istartswith 以…开头 忽略大小写
# __endswith 以…结尾
# __iendswith 以…结尾忽略大小写
# __range 在…范围内
# __year 日期字段的年份
# __month 日期字段的月份
# __day 日期字段的日# 用法
Book.objects.filter(title__exactpython)
# 等价于 title like python
Book.objects.filter(title__containspython)
# 等价于 title like %python%
Book.objects.filter(title__icontainspython)
# 忽略大小写
Book.objects.filter(title__startswithpy)
# 等价于 title like py%
Book.objects.filter(title__endswithaa)
# 等价于 title like %aaBook.objects.filter(pub_date__year2012)
# 日期字段的2012年份Student.objects.filter().excute(age10) # 查询年龄不为10的学生
Student.objects.filter().excute(age__in[10, 20]) # 查询年龄不在 [10, 20] 的学生是否为空
User.objects.filter(username__isnullTrue) # 查询用户名为空的用户
User.objects.filter(username__isnullFalse) # 查询用户名不为空的用户
# a)判等 条件名:exact。
# 例查询名字为abc的图书。
BookInfo.objects.filter(nameabc) #等同于 BookInfo.objects.filter(name__exactabc) 名称严格等于 abc 的人
BookInfo.objects.filter(name__iexactabc) # 名称为 abc 但是不区分大小写可以找到 ABC, Abc, aBC这些都符合条件# b)模糊查询(相当于sql的 like)
# 例查询书名包含传的图书。contains
BookInfo.objects.filter(btitle__contains传)
# 例查询书名以部结尾的图书 endswith 开头:startswith
BookInfo.objects.filter(btitle__endswith部)# c)空查询 isnull
# 例查询书名不为空的图书。isnull
select * from booktest_bookinfo where btitle is not null;
BookInfo.objects.filter(btitle__isnullFalse)# d)范围查询 in
# 例查询id为1或3或5的图书。
select * from booktest_bookinfo where id in (1,3,5);
BookInfo.objects.filter(id__in [1,3,5])# e)比较查询 gt(greate than) lt(less than) gte(equal) 大于等于
# lte 小于等于
# 例查询id大于3的图书。
Select * from booktest_bookinfo where id3;
BookInfo.objects.filter(id__gt3)# f)日期查询
# 例查询1980年发表的图书。
BookInfo.objects.filter(bpub_date__year1980)
# 例查询1980年1月1日后发表的图书。
from datetime import date
BookInfo.objects.filter(bpub_date__gtdate(1980,1,1))# g)range在...范围内
BookInfo.objects.filter(name__regex^abc) # 正则表达式查询
BookInfo.objects.filter(name__iregex^abc) # 正则表达式不区分大小写# exclude返回不满足条件的数据。方法示例
# 例查询id不为3的图书信息。
BookInfo.objects.exclude(id3)
User.objects.filter().excute(age10) // 查询年龄不为10的用户
User.objects.filter().excute(age__in[10, 20]) // 查询年龄不为在 [10, 20] 的用户# order_by对查询结果进行排序方法示例
# 作用进行查询结果进行排序。默认是升序在条件里加“-”表示降序
# 例查询所有图书的信息按照id从小到大进行排序。
BookInfo.objects.all().order_by(id)# 例查询所有图书的信息按照id从大到小进行排序。
BookInfo.objects.all().order_by(-id)# 例把id大于3的图书信息按阅读量从大到小排序显示。
BookInfo.objects.filter(id__gt3).order_by(-bread)多表连接查询 class A(models.Model):name models.CharField(u名称)class B(models.Model):aa models.ForeignKey(A)B.objects.filter(aa__name__containssearchtitle)
# 查询B表中外键aa所对应的表中字段name包含searchtitle的B表对象。总结
exclude(): ---------不包含
# exclude(**kwargs)
# 返回一个新的QuerySet它包含不满足给定的查找参数的对象Student.objects.exclude(age__gt20, namelin)#排除所有年龄大于20岁且名字为“lin”的学员集2.annotate(): ---------------------聚合函数需要用到
annotate(args, *kwargs)# 使用提供的聚合表达式查询对象。
# 表达式可以是简单的值、对模型或任何关联模型上的字段的引用或者聚合表达式平均值、总和等。
# annotate()的每个参数都是一个annotation它将添加到返回的QuerySet每个对象中。
# 关键字参数指定的Annotation将使用关键字作为Annotation 的别名。 匿名参数的别名将基于聚合函数的名称和模型的字段生成。 只有引用单个字段的聚合表达式才可以使用匿名参数。 其它所有形式都必须用关键字参数。
# 例如如果正在操作一个Blog列表你可能想知道每个Blog有多少Entryfrom django.db.models import Countq Blog.objects.annotate(Count(entry))
# The name of the first blogq[0].name
Blogasaurus
# The number of entries on the first blogq[0].entry__count
42order_by(): 排序
order_by(*fields)# 默认情况下根据模型的Meta类中的ordering属性对QuerySet中的对象进行排序
Student.objects.filter(school阳关小学).order_by(-age, name)
# 上面的结果将按照age降序排序然后再按照name升序排序。-age前面的负号表示降序顺序。 升序是默认的。 要随机排序使用?如下所示
Student.objects.order_by(?)reverse(): -------反向排序
# reverse()
# 反向排序QuerySet中返回的元素。 第二次调用reverse()将恢复到原有的排序。
# 如要获取QuerySet中最后五个元素可以这样做
my_queryset.reverse()[:5]
# 这与Python直接使用负索引有点不一样。 Django不支持负索引。distinct() ---------去重
distinct(*fields)
# 去除查询结果中重复的行。
# 默认情况下QuerySet不会去除重复的行。当查询跨越多张表的数据时QuerySet可能得到重复的结果这时候可以使用distinct()进行去重。values()
values(fields, *expressions)# 返回一个包含数据的字典的queryset而不是模型实例。# 每个字典表示一个对象键对应于模型对象的属性名称。如# 列表中包含的是Student对象Student.objects.filter(name__startswithLin)
QuerySet [Student: Lin Student]# 列表中包含的是数据字典Student.objects.filter(name__startswithLin).values()
QuerySet [{id: 1, name: Linxiao, age: 20}]# 另外该方法接收可选的位置参数*fields它指定values()应该限制哪些字段。如果指定字段每个字典将只包含指定的字段的键/值。如果没有指定字段每个字典将包含数据库表中所有字段的键和值。如下Student.objects.filter(name__startswithLin).values()
QuerySet [{id: 1, name: Linxiao, age: 20}] Blog.objects.values(id, name)
QuerySet [{id: 1, name: Linxiao}]values_list()
values_list(*fields, flatFalse)# 与values()类似只是在迭代时返回的是元组而不是字典。每个元组包含传递给values_list()调用的相应字段或表达式的值因此第一个项目是第一个字段等。 像这样Student.objects.values_list(id, name)
QuerySet [(1, Linxiao), ...] 文章转载自: http://www.morning.huihuangwh.cn.gov.cn.huihuangwh.cn http://www.morning.dbqcw.com.gov.cn.dbqcw.com http://www.morning.tdttz.cn.gov.cn.tdttz.cn http://www.morning.tnktt.cn.gov.cn.tnktt.cn http://www.morning.bmmyx.cn.gov.cn.bmmyx.cn http://www.morning.lpqgq.cn.gov.cn.lpqgq.cn http://www.morning.dtzsm.cn.gov.cn.dtzsm.cn http://www.morning.qxljc.cn.gov.cn.qxljc.cn http://www.morning.ghphp.cn.gov.cn.ghphp.cn http://www.morning.trqzk.cn.gov.cn.trqzk.cn http://www.morning.mzgq.cn.gov.cn.mzgq.cn http://www.morning.xqqcq.cn.gov.cn.xqqcq.cn http://www.morning.rpms.cn.gov.cn.rpms.cn http://www.morning.wnnts.cn.gov.cn.wnnts.cn http://www.morning.bysey.com.gov.cn.bysey.com http://www.morning.mlcnh.cn.gov.cn.mlcnh.cn http://www.morning.nrbqf.cn.gov.cn.nrbqf.cn http://www.morning.nhdmh.cn.gov.cn.nhdmh.cn http://www.morning.sfhjx.cn.gov.cn.sfhjx.cn http://www.morning.wnqbf.cn.gov.cn.wnqbf.cn http://www.morning.qpnmd.cn.gov.cn.qpnmd.cn http://www.morning.rmfwh.cn.gov.cn.rmfwh.cn http://www.morning.qrlkt.cn.gov.cn.qrlkt.cn http://www.morning.nfsrs.cn.gov.cn.nfsrs.cn http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn http://www.morning.mkrjf.cn.gov.cn.mkrjf.cn http://www.morning.qfths.cn.gov.cn.qfths.cn http://www.morning.mqxzh.cn.gov.cn.mqxzh.cn http://www.morning.ltywr.cn.gov.cn.ltywr.cn http://www.morning.knscf.cn.gov.cn.knscf.cn http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn http://www.morning.hxycm.cn.gov.cn.hxycm.cn http://www.morning.pcbfl.cn.gov.cn.pcbfl.cn http://www.morning.thpns.cn.gov.cn.thpns.cn http://www.morning.dcccl.cn.gov.cn.dcccl.cn http://www.morning.ckwrn.cn.gov.cn.ckwrn.cn http://www.morning.zpqbh.cn.gov.cn.zpqbh.cn http://www.morning.ksqzd.cn.gov.cn.ksqzd.cn http://www.morning.fhxrb.cn.gov.cn.fhxrb.cn http://www.morning.btgxf.cn.gov.cn.btgxf.cn http://www.morning.gtdf.cn.gov.cn.gtdf.cn http://www.morning.zfcfk.cn.gov.cn.zfcfk.cn http://www.morning.gxcit.com.gov.cn.gxcit.com http://www.morning.jqbpn.cn.gov.cn.jqbpn.cn http://www.morning.fwllb.cn.gov.cn.fwllb.cn http://www.morning.nzkc.cn.gov.cn.nzkc.cn http://www.morning.nlygm.cn.gov.cn.nlygm.cn http://www.morning.yydeq.cn.gov.cn.yydeq.cn http://www.morning.fllx.cn.gov.cn.fllx.cn http://www.morning.mrfjr.cn.gov.cn.mrfjr.cn http://www.morning.ndxss.cn.gov.cn.ndxss.cn http://www.morning.wngpq.cn.gov.cn.wngpq.cn http://www.morning.lywys.cn.gov.cn.lywys.cn http://www.morning.dzrcj.cn.gov.cn.dzrcj.cn http://www.morning.brrxz.cn.gov.cn.brrxz.cn http://www.morning.pplxd.cn.gov.cn.pplxd.cn http://www.morning.kbynw.cn.gov.cn.kbynw.cn http://www.morning.zlzpz.cn.gov.cn.zlzpz.cn http://www.morning.qgfy.cn.gov.cn.qgfy.cn http://www.morning.gwkjg.cn.gov.cn.gwkjg.cn http://www.morning.bwygy.cn.gov.cn.bwygy.cn http://www.morning.bnfrj.cn.gov.cn.bnfrj.cn http://www.morning.gqbks.cn.gov.cn.gqbks.cn http://www.morning.nqrdx.cn.gov.cn.nqrdx.cn http://www.morning.nkjjp.cn.gov.cn.nkjjp.cn http://www.morning.wfspn.cn.gov.cn.wfspn.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.rtkz.cn.gov.cn.rtkz.cn http://www.morning.wjlhp.cn.gov.cn.wjlhp.cn http://www.morning.fpyll.cn.gov.cn.fpyll.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.gbxxh.cn.gov.cn.gbxxh.cn http://www.morning.fznj.cn.gov.cn.fznj.cn http://www.morning.krjyq.cn.gov.cn.krjyq.cn http://www.morning.ktrzt.cn.gov.cn.ktrzt.cn http://www.morning.rqkck.cn.gov.cn.rqkck.cn http://www.morning.snnwx.cn.gov.cn.snnwx.cn http://www.morning.qrcxh.cn.gov.cn.qrcxh.cn http://www.morning.yhyqg.cn.gov.cn.yhyqg.cn http://www.morning.qdmdp.cn.gov.cn.qdmdp.cn