Django——惰性机制
Posted jiekesi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django——惰性机制相关的知识,希望对你有一定的参考价值。
Django惰性机制
所谓惰性机制:Publisher.objects.all()或者.filter()等都只是返回了一个QuerySet(查询结果集对象),
它并不会马上执行sql,而是当调用QuerySet的时候才执行。
了解什么是QuerySet?
QuerySet是查询集,就是传到服务器上的url里面的查询内容。
Django会对查询返回的结果集QuerySet进行缓存,这是为了提高查询效率。
也就是说,在你创建一个QuerySet对象的时候,Django并不会立即向数据库发出查询命令,只有在你需要用到这个QuerySet的时候才会这样做。
QuerySet的两个特点:
1迭代
1 def list(request): 2 obj_li = models.Book.objects.all() 3 for item in obj_li[1:3]: # 每一obj就是一个行对象,此时会执行sql 4 print (item.name)
2切片
1 # objs=models.Book.objects.all() # [obj1,obj2,ob3...] 2 # print(objs[1]) 3 # print(objs[1:4]) 4 # print(objs[::-1])
以上是关于Django——惰性机制的主要内容,如果未能解决你的问题,请参考以下文章