html中textarea是什么意思(Django 模型定义)

模型定义用于定义表字段的类型,长度,是否必填,默认值等等,可理解为表结构定义。定义后django会自动在数据库创建对应的数据表结构。一般都是在models.py中定义,在mywebweb中编辑models.py如下:


from django.db import models

#任务表

class Tasks(models.Model):

task_name = models.CharField('任务名称', max_length=100)

task_user = models.CharField('操作者', max_length=20)

task_describe = models.TextField('任务描述', max_length=2000, default='')

task_start_date = models.DateField('开始日期', auto_now_add=True)

task_end_date = models.DateField('结束日期', auto_now_add=True)

task_result = models.TextField('任务评价', max_length=2000,default='')


class Meta:

verbose_name = '任务表'

verbose_name_plural = "任务表"

所有的模型定义都继承models.Model,所以先from django.db import models然后定义一个Tasks的模型并继承models,class Tasks(models.Model),给模型定义一些业务字段。

models.CharField('任务名称', max_length=100)中的'任务名称'是verbose_name,也可以这样写models.CharField(verbose_name='任务名称', max_length=100),这样写的好处是在后台将显示中文'任务名称',否则会显示task_name。


同样模型定义时,加入class Meta,即可在后台页面中显示中文:任务表,否则显示模型类名:Tasks。

字段的常见类型有:

类型

说明

AutoField

一个自动增加的整数类型字段。如果没有定义,Django会自动添加字段:id = models.AutoField(primary_key=True),这是一个自增字段,从1开始计数。

BigAutoField

64位整数类型自增字段,数字范围更大,从1到9223372036854775807

BigIntegerField

64位整数字段,类似IntegerField,-9223372036854775808 到9223372036854775807。在Django的模板表单里体现为一个textinput标签。

BooleanField

布尔值类型。默认值是None。在HTML表单中体现为CheckboxInput标签。如果要接收null值,请使用NullBooleanField。

CharField

字符串类型。必须接收一个max_length参数,表示字符串长度不能超过该值。最常用的filed。

CommaSeparatedIntegerField

逗号分隔的整数类型。必须接收一个max_length参数。常用于表示较大的金额数目,例如1,000,000元。

DateField

class DateField(auto_now=False, auto_now_add=False, **options)日期类型。一个Python中的datetime.date的实例。两个重要参数:(参数互斥,不能共存)auto_now:每当对象被保存时将字段设为当前日期,常用于保存最后修改时间。auto_now_add:每当对象被创建时,设为当前日期,常用于保存创建日期(注意,它是不可修改的)。设置上面两个参数就相当于给field添加了editable=Falseblank=True属性。如果想具有修改属性,请用default参数。例子:pub_time = models.DateField(auto_now_add=True),自动添加发布时间。

DateTimeField

日期时间类型。与DateField相比就是多了小时、分和秒的显示,其它功能、参数、用法、默认值等等都一样。

DecimalField

固定精度的十进制小数。必须提供两个指定的参数!参数max_digits:最大的位数,必须大于或等于小数点位数 decimal_places:小数点位数,精度。 例子:储存最大不超过999,带有2位小数位精度的数,定义如下:models.DecimalField(..., max_digits=5, decimal_places=2)

EmailField

邮箱类型,默认max_length最大长度254位。使用这个字段的好处是,可以使用DJango内置的EmailValidator进行邮箱地址合法性验证。

FileField

class FileField(upload_to=None, max_length=100, **options)

FilePathField

文件路径类型

FloatField

浮点数类型

IntegerField

整数类型,取值范围-2147483648到2147483647。

NullBooleanField

类似布尔字段,只不过额外允许NULL作为选项之一。

PositiveSmallIntegerField

较小的正整数字段,从0到32767。

SmallIntegerField

小整数,包含-32768到32767。

TextField

大量文本内容,在HTML中表现为Textarea标签,如果你为它设置一个max_length参数,那么在前端页面中会受到输入字符数量限制,然而在模型和数据库层面却不受影响。只有CharField才能同时作用于两者。

TimeField

textarea属性

时间字段,Python中datetime.time的实例。接收同DateField一样的参数,只作用于小时、分和秒。


表结构定义好后,要同步数据,意思是所有这些对模型的定义,改动,都真正地迁移到物理表(我的理解),运行命令如下:

python manage.py makemigrations

python manage.py migrate

执行完命令后,可以到数据库所在服务器查看一下,数据表是否创建了。

提示:以后所有对模型的改动,都要重新执行一次这两条命令。

您可以还会对下面的文章感兴趣

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

使用微信扫描二维码后

点击右上角发送给好友