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) | 常用 |