Django:orm操作

QureySet API建立在模型数据库查询指南中提供的材料上
网址:https://docs.djangoproject.com/en/1.7/ref/models/querysets/

Q对象的使用

随着我们的程序越来越复杂,查询的条件也跟着复杂起来,这样简单的通过一个filter()来进行查询的条件将导致我们的查询越来越长。而Q()对象就是为了将这些条件组合起来。
当我们在查询的条件中需要组合条件时(例如两个条件‘且’或者’或’)时。我们可以使用Q()查询对象。例如下面的代码

from django.db.modelsimports Q
q=Q(question_startswith="what")

这样就生成了一个Q()对象

order_by
Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')

上面的结果将按pub_date降序排列,然后按 headline升序排列。前面的负号"-pub_date"表示 降序。暗示升序。要随机订购,请使用"?",如下所示:

Entry.objects.order_by('?')
django 批量写入数据
querysetlist=[]
for i in resultlist:
    querysetlist.append(Account(name=i))        
Account.objects.bulk_create(querysetlist)
django获取某一个字段的列表,values/values_list/flat

1.values返回是字典列表
2.values_list返回的是元组列表
3values_list加上flat=True之后返回值列表
假设有一对象UserInfo其有字段(uname,uemail)等字段

values

UserInfo.objects.filter(某查询条件).values('id','uname','uemail')
#输出结果为
[{u'id':1L,u'uname':'lisi',u'uemail':'11111123@qq.com'},{u'id':2L,u'uname':'laowang',u'uemail':'1111ew23@qq.com'}]

values_list

UserInfo.objects.filter(某查询条件).values_list('id','uname',''uemail')
#输出结果为
[(1L,lisi,11111123@qq.ocm),(2L,laowang,1111ew23@qq.com)]

flat=True

UserInfo.objects.filter(某查询条件).values_list('id',flat=True)
#输出结果为
[1L,2L]
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值