ORM操作
字段类型
CharField varchar类型,需要指定长度
IntegerField 整形
DecimalField 浮点型 需要指定最大长度和小数点位数
DateField 日期 datetime
ForeignKey 做外键
# to 设置关联表
# to_field 关联表要关联的键名,默认为关联表中的id,可以不写
# on_delete 当删除关联表中的数据的时候,从表做什么行为,
# CASCADE 当关联表中数据删除的时候,外键所在表中的数据也会被删除
# SET_NULL 当关联表中数据删除的时候,外键所在表中的外键设置为空
# SET_DEFAULT 当关联表中数据删除的时候,外键所在表中的外键设置一个默认值
# PROTECT 关联保护,当关联表的数据被删除的时候,报异常,
# DO_NOTHING 当关联表中数据删除的时候,外键所在的表不做任何事情
字段属性
max_length 最大长度
verbose_name 备注,站点管理中用于显示字段为中文
max_digits 浮点型最大长度
decimal_places 小数点位数
auto_now = True 获取的是当前时间
null = True 可为空,默认是不为空
元数据
db_table 修改表的名字
verbose_name 备注,站点管理中用于显示模型名字为中文,会出现s
verbose_name_plural 显示复数名称
ordering= ['-age'] 指定排序
ORM的操作
单表操作
增加
save 方法
create方法
查询
all
返回一个queryset 一个列表
返回符合条件的所有数据
get方法
返回是一个对象
返回结果有且有一条,get后面的条件常用主键
filter方法,类似于sql中的where
返回值:queryset
使用遍历或者下标提取属性的值
order by
exclude()
返回一个quertset,查询集,包含了跟给定条件不符合的所有数据
Queryset
查询集,不是python列表,也叫结果集,表示从数据库中获取的一个对象集合
使用如下的方法的时候返回:
- all()
- filter()
- order_by()
- exclude()
- values 特殊的queryset
- 切片
特性:
- 惰性
- 创建好查询集之后不会立即执行,在使用的时候才会进行数据的查询,
- 缓存
- 使用一个查询集,第一次使用进行查询,然后将数据进行缓存,之后再使用该查询集不会再次发起查询,而是将查询到的结果缓存了下来
使用如下方法返回对象
- get
- first()
- last()