django 模型

属性命名限制: (1) . 不能是python 的保留关键字
(2) . 不允许使用连续的下划线
(3) . 定义属性时需要指定字段类型,通过字段类型的参数指定选项 属性=models.字段类型(选项)
字段类型:使用时需要引用 from django.db.models 包
null 和 blank ? --->> null 是数据库的概念, blank 是表单验证的概念.
django 条件查询下面---->
查询集: 查询集,也称查询结果集、QuerySet,表示从数据库中获取的对象集合。
当调用如下过滤器方法时,Django会返回查询集(而不是简单的列表):
get(): 返回满足条件的一条数据,(有且只返回一条).
all():返回所有数据。
filter():返回满足条件的数据。
exclude():返回满足条件之外的数据。
order_by():对结果进行排序。
aggregate():进行聚合操作,返回一个字典. Avg Sum ,Count , Max ,Min
exists():判断查询集中是否有数据,如果有则返回True,没有则返回False。
查询集两大特性:(1).惰性查询 (2).查询集的缓存
限制查询集
可以对一个查询集进行 取下标或切片 操作,等同于sql中的limit和offset子句。
模型类关系 : (1) . 一对多,将字段定义在多的一端中。
(2) . 多对多,将字段定义在任意一端中。
(3) . 将字段定义在任意一端中。
关联查询;
(1). 由一到多的访问语法:
一对应的模型类对象.多对应的模型类名小写set
例:
b = BookInfo.objects.get(id=1)
b.heroinfo_set.all()
(2). 由多到一的访问语法:
多对应的模型类对象.多对应的模型类中的关系类属性名
例:
h = HeroInfo.objects.get(id=1)
h.hbook
自关联 : 自关联是一种特殊的一对多的关系。
模型类扩展
模型实例方法
str():在将对象转换成字符串时会被调用。
save():将模型对象保存到数据表中,ORM框架会转换成对应的insert或update语句。
delete():将模型对象从数据表中删除,ORM框架会转换成对应的delete语句。
模型类的属性: 属性objects:管理器,是models.Manager类型的对象,用于与数据库进行交互。
管理器可以自己定义 例:class BookInfo(models.Model): ---> books = BookInfoManager()
元选项
在模型类中定义类Meta,用于设置元信息,如使用db_table自定义表的名字。
数据表的默认名称为:
例:booktest_bookinfo

你可能感兴趣的:(django 模型)