您的位置:首页 > 产品设计 > UI/UE

django QuerySet API

2018-02-14 11:30 489 查看

新建一个对象

Person.objects.create(name=name,age=age)

p = Person(name="WZ", age=23)
p.save()

p = Person(name="TWZ")
p.age = 23
p.save()

Person.objects.get_or_create(name="WZT", age=23)


获取对象

- 获取全部对象

Person.objects.all()
Person.objects.all()[:10] 切片操作,获取10个人,不支持负索引,切片可以节约内存


-获取单个对象

Person.objects.get(name=name)


-获取满足条件的对象

Person.objects.filter(name="abc") # 等于Person.objects.filter(name__exact="abc") #名称严格等于 "abc" 的人

Person.objects.filter(name__iexact="abc")  # 名称为 abc 但是不区分大小写,可以找到 ABC, Abc, aBC,这些都符合条件

Person.objects.filter(name__contains="abc")  # 名称中包含 "abc"的人
Person.objects.filter(name__icontains="abc")  #名称中包含 "abc",且abc不区分大小写

Person.objects.filter(name__regex="^abc")  # 正则表达式查询
Person.objects.filter(name__iregex="^abc")  # 正则表达式不区分大小写

Person.objects.exclude(name__contains="WZ")  # 排除包含 WZ 的Person对象
Person.objects.filter(name__contains="abc").exclude(age=23)  # 找出名称含有abc, 但是排除年龄是23岁的


values_list 获取元组形式结果

In [6]: authors = Author.objects.values_list('name', 'qq')
In [7]: authors
Out[7]: <QuerySet [(u'WeizhongTu', u'336643078'), (u'twz915', u'915792575'), (u'wangdachui', u'353506297'), (u'xiaoming', u'004466315')]>


values 获取字典形式的结果

In [13]: Author.objects.values('name', 'qq')

Out[13]: <QuerySet [{'qq': u'336643078', 'name': u'WeizhongTu'}, {'qq': u'915792575', 'name': u'twz915'}, {'qq': u'353506297', 'name': u'wangdachui'}, {'qq': u'004466315', 'name': u'xiaoming'}]>

In [14]: list(Author.objects.values('name', 'qq'))

Out[14]:
[{'name': u'WeizhongTu', 'qq': u'336643078'},
{'name': u'twz915', 'qq': u'915792575'},
{'name': u'wangdachui', 'qq': u'353506297'},
{'name': u'xiaoming', 'qq': u'004466315'}]


修改一个 settings.py 让Django打印出在数据库中执行的语句

LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'console': {
'class': 'logging.StreamHandler',
},
},
'loggers': {
'django.db.backends': {
'handlers': ['console'],
'level': 'DEBUG' if **True** else 'INFO',
},
},
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django