Django models 模型
模型
Django 模型是描述数据的,它包含存储数据的重要字段和行为。 一个模型映射一张数据库表。
模型采用ORM来映射数据库表。
- 每个模型都是一个 Python 的类,这些类继承
django.db.models.Model
- 模型类的每个属性都相当于一个数据库的字段
- 利用模型访问数据库进行查询
如果模型中未定义主键,则表(模型)会字段添加一个
id
自增字段;如果显式地设置了primary_key,将不会自动在表(模型)中添加 id 列要使模型映射到数据库表需要运行
py manage.py migrate
, 与此同时,可以py manage.py makemigrations
命令进行迁移成文件,方便以后检查、调用、重做等等如果定义了模型且要使用它,需要在
setting.py
中的INSTALLED_APPS
添加由manage.py startapp
创建的app名称
字段(Field)
字段类型
字段 | 类型 |
---|---|
AutoField | 自动递增 |
BigAutoField | 64位AutoField |
BigIntegerField | 64位整数IntegerField |
BinaryField | 二进制数据 |
BooleanField | 布尔值 |
CharField | 字符串 |
DateField | 日期 |
DateTimeField | 日期和时间 |
DecimalField | 固定精度的十进制数字 |
DurationField | 存储时间段 |
EmailField | 电子邮件地址 |
FileField | 文件 |
FilePathField | 文件路径 |
FloatField | 浮点数 |
ImageField | 图像 |
IntegerField | 整数 |
GenericIPAddressField | 字符串格式的IPv4或IPv6地址 |
NullBooleanField | null(null=True) |
PositiveIntegerField | 正整数 |
PositiveSmallIntegerField | 正短整数或0 |
SlugField | 仅包含字母,数字,下划线或连字符, 用于URL |
SmallAutoField | 小整数AutoField |
SmallIntegerField | 小整数IntegerField |
TextField | 文本类型 |
TimeField | 时间 |
URLField | URL |
UUIDField | 用于存储通用唯一标识符 |
ForeignKey | 多对一的关系 (关联关系字段) |
ManyToManyField | 多对多关系 (关联关系字段) |
OneToOneField | 一对一关系 (关联关系字段) |
字段选项
选项 | 功能 |
---|---|
max_length | 指定数据库存储数据时用的字节数 |
null | 字段为空时,将数据库中该字段设置为 NULL。默认为 False |
blank | 字段允许为空。默认为 False |
choices | 将二元组用作此字段的选项; 每个二元组的第一个值会储存在数据库中,而第二个值将只会用于在表单中显示 |
db_column | 字段的数据库列的名称 |
db_index | 为字段创建数据库索引 |
db_tablespace | 如果字段已建立索引,则用于该字段的索引的数据库表空间的名称 |
default | 字段的默认值 |
editable | 字段是否可编辑 |
error_messages | 字段错误时引发的提示,值是一个字典 |
help_text | 额外的“帮助”文本 |
primary_key | 字段设置为该模型的主键 |
unique | 字段的值必须在整个表中保持唯一 |
unique_for_date | 日期字段或日期时间字段的值唯一 |
unique_for_month | 日期字段或日期时间字段中的月份的值唯一 |
unique_for_year | 日期字段或日期时间字段中的年份的值唯一 |
verbose_name | 该字段的可读名称 |
through |
指定多对多关系使用哪个中间模型 (ManyToManyField)如果中间模型有多个外键需要使用 through_fields 手动选择一个外键
|
字段属性
属性 | 功能 |
---|---|
auto_created | 是否自动创建该字段 |
concrete | 是否具有与其关联的数据库列 |
hidden | 是否使用一个字段来支持另一个非隐藏字段的功能 |
is_relation | 是否包含一个或多个其他模型的功能 |
model | 返回定义字段的模型 |
Django models 模型相关推荐
最新文章
热门文章 |