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

Django 惰性机制

Python学习---django惰性机制

Django中的惰性机制

Django QuerySet缓存和惰性机制

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

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