模型层
模型层的13个方法
all() 查询所有结果
filter(**kwargs) 它包含了与所给筛选条件相匹配的对象
get(**kwargs) 返回与所给的筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条 件的对象超过一个或者没有都会抛出错误。(源码就去搂一眼~诠释为何只能是一个对象)
reverse() 对查询结果反向排序>>>前面需要先有排序才能反向
order_by() 对查询的结果做排序("-id")/("price)
exclude() 它包含了给的条件不匹配的对象
values() 返回一个valuequeryset 一个特殊的Queryset与与逆行后得到的并不是一系列的model的实例化对象,而是一个可迭代的字典序列
values_list() 他与values()
count()非常相似,他返回的是一个元组序列,values返沪ide是一个字典序列
distinct() 从返回的结果中剔除掉重复的记录,这个记录要完全相同
exints() 用于判断 queryset有没有包含数据有数据返回True 没有对象那么就返回False
first() 返回i一条记录
last() 返回最后一条记录
CharField(max_length=255) 创建表字段相当于mysql中的char ,max_lenget字段的长度
DecimalField(max_digits=8,decimal_places=2) 小数创建,(显示整数,显示小数)
DateField(auto_now_add=True) 时间创建 时间自动创建 每次以再给表添加字段的时候表都会自动添加时间
models.IntegerField(null=True) 设置整形字段,整形字段可以不用传参默认使用显示11位 设置可以为空
models.ForeignKey(to='Publish')设置外键 外键字段直接放入所对应的类的名字 他会自动将该类的主键字段传入
models.ManyToManyField(to="Author") 多对多字段,也是将类的名字放入
models.EmailField() # 就是varchar(254)
models.OneToOneField(to="AuthorDetail") 建立一对一的字段
models.BigIntegerField 64位整数,类似于IntegerField,范围从-9223372036854775808 到9223372036854775807。默认的form widget 是TextInput。