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])

 

posted @ 2019-10-31 20:20  漫天鑫  阅读(198)  评论(0编辑  收藏  举报