Django 惰性机制
Posted tisnk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 惰性机制相关的知识,希望对你有一定的参考价值。
惰性机制
了解所谓的惰性机制:
Publisher.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),它并不会马上执行sql,而是当调用QuerySet的时候才执行sql。
了解什么是QuerySet?
Django的ORM中存在查询集的概念(查询集也被称作为结果集),QuerySet 表示从数据库中获取的对象集合,
Django会对查询返回的结果集QuerySet进行缓存,这是为了提高查询效率。
Django返回查询集可以调用如下过滤器:
all(): 返回所有数据;
filter(): 返回满足条件的数据;
order_by(): 对结果进行倒序;
exclude(): 返回满足条件之外的数据
QerySet 的两大特性:
迭代
obj_li=models.Book.objects.all() #如Book中有[1,2,3,4,5] for a in obj_li: # 每一个a就是一个行对象,此时会执行sql print(a)
切片
obj_li=models.Book.objects.all() # [1,2,3,4,5.......] print(obj_li[1]) print(obj_li[1:4]) print(obj_li[::-1])
以上是关于Django 惰性机制的主要内容,如果未能解决你的问题,请参考以下文章