目录
模型类生成表
这里只作简单得介绍,具体得看开发文档中的模型类即可
-
Django1.8.2开发文档模型类:
https://docs.djangoproject.com/zh-hans/2.0/intro/overview/ -
先在model.py文件中创建模型类:
模型类中的具体细节后面在讲。先在model.py文件中创建模型类。
-
生成迁移文件
python manage.py makemigrations这个样子表示迁移文件生成成功。 生成的迁移文件直接放在migrations的文件夹下。
迁移文件的内容# Generated by Django 2.0 on 2020-01-14 10:48 from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='BookInfor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('btitle', models.CharField(max_length=20)), ('bup_data', models.DateField()), ], ), ] #迁移文件中主要是类似于sql语句一样的,将创建的模型类直接变成相应的语句一样
- 执行迁移生成表
python manage.py migrate
这样就表明将迁移文件生成了表
字段的类型和选项
- 字段的属性
-
模型类属性命名的限制:
- 不能够是python中的关键字
- 不能够有连续两个下划线,这是由django官方的查询机制决定的
- 定义的时候需要指定字段类型才能够生效(属性名=models.字段类型(选项))
-
常见的字段类型:
使用字段类型的时候需要导入django.db.models.
一般情况下是直接就导入了的。
-
类型 | 描述 |
---|---|
AutoField | 自动增长的IntegerField,通常情况下不用进行指点,Django会自动为其创建自动增长的ID |
BooleanField | 布尔字段,Ture or False |
NullBooleanField | 支持Null,Ture,False三种类型 |
CharField | 字符串(max_length) 表示最大字符个数 |
TextField | 大文本字段,一般超过4000个字符的时候使用 |
IntegerField | 整数 |
DecimalField (max_digits = None,decimal_places=None) | 十进制浮点数。参数max_digits表示总位。参数decimal_places表示小数位数 |
Floatfield | 浮点数。参数同上(两者的区别就是精度不同,针对不同的精度使用不同字段类型) |
DateField (auto_now=False,auto_now_add=False) | 这是日期类型: 1:参数auto_now 表示每次保存对象的时候,自动设置位字段当前的时间,用于最后一次修改的时间戳。 2:参数auto_now_add表示当前对象第一次创建的时候的时间戳,用于创建的时间戳,都是使用当前日期,默认都是位False 3:参数suto_now 和参数auto_now_add是相互排斥的,一起组合将会发生错误 |
TimeField | 时间参数同DateField |
DateTimeField | 日期时间,参数同DateField |
常见的字段类型就是这,更多的见开发文档就行,开发文档写的还是很详细的。
- 字段的选项
选项的作用就是实现对字段的约束
选项名 | 描述 |
---|---|
default | 设值默认值 |
primary_key | 设置主键的。默认值位False。一般是在AutoField的选项中使用 |
unique | 这是数据库中唯一性的标识。默认值都是Fales。若为Ture则表示这个字段在表中必须具有唯一值,不能够重复 |
db_index | 若位Ture,则会在表中位字段创建字段索引,默认值是False |
db_column | 主要的作用是自定义字段的名称。如果没有指定则使用模型中的。如果另外指定则使用指定的属性的名称 |
null | 若为True,则表示允许为空。默认值是False |
blank | 若为True,则表示允许字段为空白,在表格的时候可以不用填写就能够添加。默认值是False |
对比: null是数据库的范畴的范围概念,blank是后台管理页面表单验证范畴的。
经验: 如果添加的选项不影响表的结构,则不需要重新做迁移。例如:default 和blank不影响表的结构,则不需要重新迁移。
更多的见开发文档.