from django.db import models
# Create your models here.
class UserInfo(models.Model):
id = models.AutoField('id', primary_key=True)
userName = models.CharField('姓名', max_length=20, null=False)
loginNum = models.IntegerField('登录账号')
userPassword = models.CharField('密码', max_length=16, null=False)
class Meta:
db_table = '人员信息'
# 数据迁移
python manage.py makemigrations
# 首次执行成功后会生成 0001_initial.py ,将models.py定义的模型生成数据表的脚本代码,该文件的脚本代码只被migrate指令执行
python manage.py migrate
# 指令执行完毕后生成数据表
# 在操作数据迁移时,django会对整个项目代码进行检测,首先执行check命令,只要某个功能文件有问题则终止迁移,可以使用python manage.py check 检测
① 字段类型
模型字段 | 意义 |
---|---|
AutoField | 自增长类型,整数类型,长度为11位 |
BigAutoField | 自增长类型,bigint类型,长度为20位 |
CharField | 字符类型 |
IntegerField | 整数类型 |
BooleanField | 布尔类型 |
CommaSeparatedIntegerField | 用逗号分隔的整数类型 |
TimeField | 显示时分秒 |
DateField | 日期(date)类型 |
DateTimeField | 日期(datetime)类型 |
Decimal | 十进制小数类型 |
TextField | 长文本字符串类型 |
FileField | 文件路径字符串类型 |
ImageField | 文件图片路径字符串类型 |
EmailField | 邮件格式的字符串类型 |
BigIntegerField | 长整数类型 |
IPAddressField | ipv4字符串类型 |
GenericIPAddressField | ipv4、6字符串类型 |
② 每个字段设置的参数
参数 | 分析 |
---|---|
verbose_name | 默认为None,在Admin站点管理设置字段的显示名称 |
primary_key | 默认为False,若为True则设置为主键 |
max_length | 默认为None,设置字段最大长度 |
balnk | 默认为False,若为True则允许字段为空值,数据库将存储空字符串 |
null | 默认为False,若为True则允许字段为空值,数据库显示NULL |
db_index | 默认为False,若为True则以此来创建数据库索引 |
default | 默认为NOT_PROVIDED对象,设置字段的默认值 |
unique_for_date | 默认为None,设置日期字段的唯一性 |
unique_for_month | 默认为None,设置日期字段月份的唯一性 |
unique_for_year | 默认为None,设置日期字段年份的唯一性 |
③ Meta选项
属性 | 说明 |
---|---|
abstract | 若设为True,则该模型为抽象模型,不会在数据库中创建表 |
app_label | 属性为字符串,将模型设置为指定的项目应用,比如将Index的models.py定义的模型A指定到其他APP |
db_table | 属性为字符串,设置数据表名称 |
db_tablespace | 设置数据库的表空间 |
get_latest_by | 设置数据排列方式 |
order_with_respect_to | 属性为字符串,用于多对多的模型关系,指向某个关联模型名称(英文小写) |
ordering | 属性值为列表,将模型数据以某个字段进行排序 |
permissions | 属性值为元组,设置模型访问权限, |
proxy | 克隆模型 |
label | 只读属性 |
④ 数据表关系
参数 | 意义 |
---|---|
OneToOneField | 一对一关系 |
ForeignKey | 一对多关系 |
ManyToManyField | 多对多关系 |
字段特殊参数
参数 | 说明 |
---|---|
to | 必选参数,关联的模型名 |
on_delete | 必选参数,设置数据的删除模式,包括CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET、DO_NOTHING |
limit_choices_to | 设置外键的下拉选项,用于模型表单和后台关系系统(admin) |
related_name | 用于模型之间的关联查询,如反向查询 |
related_query_name | 用于设置模型查询名称 |
to_field | 设置外键与其他模型字段的关联性,默认关联主键,若为其他则该字段需具有唯一性 |
and so on | and so on |