步骤:
模型字段
AutoField:自动增长的IntegerField
BooleanField:布尔字段,值为True或False。
NullBooleanField:支持Null、True、False三种值。
CharField(max_length=字符长度):字符串。
TextField:大文本字段,一般超过4000个字符时使用。
IntegerField:整数。
FloatField:浮点数
TimeField:时间,参数同DateField。
DateTimeField:日期时间,参数同DateField。
模型关联
1. ForeignKey:一对多,将字段定义在多的一端中。
2 ManyToManyField:多对多,将字段定义在任意一端中。
3 OneToOneField:一对一,将字段定义在任意一端中。
4 自关联:可以维护递归的关联关系,使用'self'指定
一对多:
多对多:
一对一
模型查询
查询两大特性:
惰性查询:
缓存:
#两种查询单个方式
def detail(request,id):
#查询一个人 第一种方法
person = Person.objects.filter(id=id).first()
#如果你用这种方法查询的话 ,如果数据不存在 会抛出异常。
如果想让你的程序不能奔溃
#需要加一个异常捕获
try:
person = Person.objects.get(id=id)
except Person.DoesNotExist as e:
print(e)
return render(request, 'app05/jianli.html', locals())
限制查询集
Person.objects.all()[0:5]
create_time:创建的时间
update_time:更新时间
isshow 是否显示 False True
isdelete 是否删除 False
position 索引字段
注意:不要轻易删除用户一些数据
有些数据不要轻易物理删除,
迁移
python manage.py makemigrations
python manage.py migrate
如果你的models里面有choice这样的选择
前端显示的通过 对象.get_字段_display