Django 模型类

(MySQL数据库)
在 Django 中一个模型类就对应着数据库中的一张表, 对模型类的任何操作都是对数据库表的操作. 在该项目中, 我们需要对业务进行分析, 然后创建所需要的表.

注意点:

  • 模型类需要定义在 models.py 模块中.
  • 模型类必须继承自 models.Model 类.
  • 每一个类属性和数据库表中的一个字段一一对应.

类属性后面的字段类型是由 Django 定义, 方便将字段类型映射到不同的数据库中. 例如如下代码:

goods_name = models.CharField(max_length=100)

字段名叫做 goods_name, 字段的类型为 CharField, 对应到 MySQL 数据库的字段类型就为 varchar 类型, 并且长度为100. 除了 CharField, 常用字段类型以及含义如下表所示:

字段类型描述
AutoField自动增长的IntegerField,通常不用指定,不指定时Django会自动创建属性名为id的自动增长属性.
BooleanField布尔字段,值为True或False.
NullBooleanField支持Null、True、False三种值.
CharField(max_length=长度)字符串, 参数max_length表示最大字符个数.CharField必须指定max_length大小
TextField大文本字段
IntegerFieldIntegerField 一个整数. 在Django所支持的所有数据库中,从 -2147483648 到 2147483647 范围内的值是合法的.
DecimalField(max_digits=None, decimal_places=None)十进制浮点数.参数max_digits表示总位数.参数decimal_places表示小数位数.
DateField[auto_now=False, auto_now_add=False])日期. 参数auto_now表示每次保存对象时,自动设置该字段为当前时间,用于"最后一次修改"的时间戳,它总是使用当前日期,默认为false.参数auto_now_add表示当对象第一次被创建时自动设置当前时间,用于创建的时间戳,它总是使用当前日期,默认为false.参数auto_now_add和auto_now是相互排斥的,组合将会发生错误.
TimeField时间,参数同DateField
DateTimeField日期时间,参数同DateField.
FileField上传文件字段.
ImageField继承于FileField,对上传的内容进行校验,确保是有效的图片.
BigIntegerField一个64位整数, 类似于一个 IntegerField ,它的值的范围是 -9223372036854775808 到9223372036854775807之间.
SmallIntegerField该字段值在 -32768 至 32767

表中并未解释 models.ForeignKey 字段的含义, 该字段主要用于建立外键, 表示表和表之间是一对多的关系, 例如, 商品分类和商品信息表之间就属于一对多的关系. 我们就可在商品信息模型中建立对商品分类的外键.

选项类型描述
null如果为True,表示允许为空,默认值是False.
db_column字段的名称,如果未指定,则使用属性的名称.
db_index若值为True, 则在表中会为此字段创建索引,默认值是False.
default默认值
primary_key若为True,则该字段会成为模型的主键字段,默认值是False,一般作为AutoField的选项使用.
unique如果为True, 这个字段在表中必须有唯一值,默认值是False.
  • null.如果为True,Django 将会把数据库中空值保存为NULL。默认值是 False.
  • blank. 如果为True,该字段允许为空值,默认为False。要注意,这与 null 不同。null纯粹是数据库范畴,指数据库中字段内容是否允许为空,而 blank 是表单数据输入验证范畴的。如果一个字段
    blank=True,表单的验证将允许输入一个空值。如果字段的blank=False,该字段就是必填的。
  • primary_key.如果为True,那么这个字段就是模型的主键。如果你没有指定任何一个字段
    primary_key=True,Django 就会自动添加一个IntegerField 字段做为主键,所以除非你想覆盖默认的主键行为,否则没必要设置任何一个字段的primary_key=True。主键字段是只读的。如果你在一个已存在的对象上面更改主键的值并且保存,一个新的对象将会在原有对象之外创建出来。

下面在终端执行迁移命令:

python manage.py makemigrations

下面我们执行迁移命令, 执行对应的 SQL 语句, 在数据库中创建对应的数据库表, 执行迁移的命令如下:

python manage.py migrate

接下来就可以在Navicat中查看创建好的数据库

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬嫱姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值