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——惰性机制的主要内容,如果未能解决你的问题,请参考以下文章

Django 惰性机制

Python学习---django惰性机制

Django中的惰性机制

Django QuerySet缓存和惰性机制

ORM增删改查(关联 | 聚合 | F/Q)&惰性机制 | Django开发

Django学习手册 - ORM 数据表操作