django中models的认识
一、关于models
的认识
我们创建一个
app
会默认创建的文件
|-app01
|-migrations
|-__init__.py
|-__init__.py
|-admin.py
|-apps.py
|-models.py
|-tests.py
|-views.py
我们说的models
就是指默认创建的那个models.py
文件,我们今后关于数据库的操作都写在这个文件里面
二、关于django
中的字段与MySQL
中的字段对比
MySQL字段 | Django方法 | 描述 | 使用频率 |
---|---|---|---|
int | IntegerField | 常用 | |
samllint | SmallIntegerField | ||
varchar | CharField | 要指定长度 | 常用 |
text | TextField | 表示很多文字的时候使用 | |
float | FloatField | 相当于python中float | |
date | DateField | 相当于python中的datetime.date,models.DateTimeField() | 常用于时间 |
boolean | BooleanField | 如果没指定default,默认值是None | |
可空的boolean | NullBooleanField | 表示可以为空的布尔值 | |
邮箱 | EmailField | max_length=254 | |
文件地址 | FilePathField | ||
url字段 | URLField | 默认max_length=200 | |
UUID字段 | UUIDField | UUIDField(default=uuid.uuid4) | 常用 |
备注,直接利用上面的时间字段生成的时间会有因为时区差修改方式(
Djang
开发时区差处理方式,请参考第一章的配置)
三、django
中ORM
中的Field
可以指定的字段
参数 | 作用 | 示例 | 使用频率 |
---|---|---|---|
null | 默认是False,如果指定为True,表示该字段可以为空 | id = IntegerField(null=True) | 常用 |
blank | 默认是False,如果指定为True,表示可以为空,blank是django给表单添加的 | ||
default | 给定默认值 | CharField(default='xx') | 常用 |
primary_key | 主键 | id = IntergerField(primary_key=True) | 常用 |
unique | 唯一的 | id = IntergerField(unique=True) | 常用 |
DateField.auto_now | 每次修改都会将当前时间更新进去,只有调用Model.save()方法才会调用,QuerySet.update方法将不会调用。这个参数只是Date和DateTime以及Time类才有的 | update_time = models.DateTimeField(auto_now=True,null=True) | 常用 |
DateField.auto_now_add | 第一次添加进去,都会将当前时间设置进去。以后修改,不会修改这个值 | create_time = models.DateTimeField(auto_now_add=True,null=True) | 常用 |