1、管理器对象
Django会为模型类提供一个objects对象
,它是django.db.models.manager.Manager类型,用于与数据库交互。管理器是Django的模型进行数据库查询操作的接口,Django应用的每个模型都至少拥有一个管理器。
在定义模型类的时候,如果没有指定管理器,则Django会提供一个默认的objects的管理器,如果手动定义,则不提供。
Django ORM
ORM,对象关系映射,使用面向对象的方式来操作数据库
表 -> 类
行 -> 实例
字段 -> 属性
对象的对应的增删改查
分别对应SQL的insert,delete,update,select
对模型对象的CRUD,被Django ORM转换成相应的SQL语句,操作不同的数据源。
查询
查询集:
查询会返回结果的集,是django.db.models.query.QuerySet类型,惰性求值,可迭代。
-
惰性求值
创建查询集不会对数据库进行访问,直接调用方法使用数据时,才会访问数据库。在迭代、序列化、if语句中都会立即求值 -
缓存
每一个查询集都包含一个缓存,来最小化对数据库的访问。新建查询集,缓存为空。首次对查询集求值时,会发生数据库查询,Django会把查询的结果存在这个缓存中,并返回请求的结果,再次对查询集求值时将使用