Django开发教程QuerySet概念

点击上方梓栋Code,选择设为星标

优质文章,及时送达!一、QuerySet概念

从数据库中查询出来的结果一般是一个集合,这个集合叫做QuerySet。

QuerySet[Goods:Goodsobject(8),Goods:Goodsobject(9),Goods:Goodsobject(10)]

对于上面QuerySet结构的分析:

是存放在数据库中的一个对象

Goods是类名

Goodsobject(8)就是存放在数据库的数据的(键值对的方式(字段名=值)),其中8就是id

sub_obj=models.Student.objects.filter(id=2)print(sub_obj)#QuerySet[Student:name:FF,age20]print(type(sub_obj))#classdjango.db.models.query.QuerySetsub_obj2=models.Student.objects.filter(id=2).first()print(sub_obj2)#name:FF,age20print(type(sub_obj2))#classapp1.models.Student二、两大特性

1.惰性执行

创建查询集不会访问数据库,直到调用数据时,才会访问数据库,调用数据的情况包括迭代、序列化、与if合用

q=Entry.objects.filter(headline__startswith="Python")q=q.filter(pub_date__lte=datetime.date.today())q=q.exclude(body_text__icontains="food")print(q)

虽然它看上去有三次数据库访问,但事实上只有在最后一行(print(q))时才访问一次数据库。一般来说,只有在“请求”查询集的结果时才会到数据库中去获取它们。当你确实需要结果时,查询集通过访问数据库来求值。关于求值发生的准确时间,参见何时计算查询集。

2.缓存

使用同一个查询集,第一次使用时会发生数据库的查询,然后Django会把结果缓存下来,再次使用这个查询集时会使用缓存的数据,减少了数据库的查询次数。

三、QuerySet的操作

1.QuerySet创建对象的方法:

方法1:类名.objects.create()

Author.objects.create(name="梓栋Code",email="nyyvipmail

.



转载请注明地址:http://www.sanbaicaoasb.com/scgx/8412.html
  • 上一篇文章:
  • 下一篇文章:
  • 热点文章

    • 没有热点文章

    推荐文章

    • 没有推荐文章