[内容] Django 模型层 Models Layer 常用数据库字段

内容一:Django Models 常用的文本字段

1.1 CharField() 字符串字段

1.1.1 CharField() 字符串字段的格式
<field> = models.CharField(max_length = <string length>, <option>)
1.1.2 CharField() 字符串字段的必选项
max_length = <text length>

或者:

max_length = None
1.1.3 CharField() 字符串字段的可选项
1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值


4) unique = True

值唯一

1.1.4 CharField() 字符串字段的使用案例
item = models.CharField(max_length = 20, unique = True)

(补充:这里以设置名为 item,且是唯一的 CharField() 字符串字段为例)

1.2 TextField() 文本字段

1.2.1 TextField() 文本字段的格式
<field> = models.TextField(max_length = <string length>, <option>)
1.2.2 TextField() 文本字段的必选项
max_length = <text length>

或者:

max_length = None
1.2.3 TextField() 文本字段的可选项
1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值


4) unique = True

值唯一

1.2.4 TextField() 文本字段的使用案例
item = models.TextField(max_length = 20, unique = True)

(补充:这里以设置名为 item,且是唯一的 TextField() 文本字段为例)

内容二:Django Models 常用的数值字段

2.1 IntegerField() 整数字段

2.1.1 IntegerField() 整数字段的格式
<field> = models.IntegerField(<option>)
2.1.2 IntegerField() 整数字段的可选项
1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值

2.1.3 IntegerField() 整数字段的使用案例
item = models.IntegerField()

(补充:这里以设置名为 item 的整数字段为例)

2.2 PositiveIntegerFiled() 正整数字段

2.2.1 PositiveIntegerFiled() 正整数字段的格式
<field> = models.IntegerField(<option>)
2.2.2 PositiveIntegerFiled() 正整数字段的可选项

1) blank = True

值可以为空


2) null = True

值可以为空


3) default = '<default value>'

值可以为空,可以设置成其他的值

2.2.3 PositiveIntegerFiled() 正整数字段的使用案例
item = models.TextField()

(补充:这里以设置名为 item 的正整数字段为例)

2.3 DecimalField() 小数字段

2.3.1 DecimalField() 小数字段的格式
<field> = models.DecimalField(max_digits = <total number of decimal places>, decimal_places = <how many places after the decimal point>)
2.3.2 DecimalField() 小数字段的必选项
1) max_digits = <total number of decimal places>

小数字段总共位数

2) decimal_places = <how many places after the decimal point>

小数字段小数点后保留几位

2.2.3 DecimalField() 小数字段的使用案例
item = models.DecimalField(max_digits = 5, decimal_places = 2)

(补充:这里以设置名为 item,长度为 5,小数点后保留 2 位的 DecimalField() 小数字段为例)

内容三:Django Models 常用的日期字段

3.1 DateField() 日期字段

3.1.1 DateField() 日期字段的格式
<field> = models.DateField(<option>)
3.1.2 DateField() 日期字段的可选项
auto_now = True

自动更新创建时间

3.1.3 DateField() 日期字段的使用案例
item = models.DateField(auto_now_add=True)

(补充:这里以设置名为 item,可自动更新的 DateField() 日期字段为例)

3.2 DateTimeField() 日期时间字段

3.2.1 DateTimeField() 日期时间字段的格式
<field> = models.DateTimeField(<option>)
3.2.2 DateTimeField() 日期时间字段的可选项
auto_now = True

自动更新创建时间

3.2.3 DateTimeField() 日期时间字段的使用案例
item = models.DateTimeField(auto_now_add=True)

(补充:这里以设置名为 item,可自动更新的 DateTimeField() 日期时间字段为例)

内容四:Django Models 常用的标准格式字段

4.1 GenericIPAddressField() IPv4 地址字段

4.1.1 GenericIPAddressField() IPv4 地址字段的格式
<field> = models.IPAddressField()


补充:
在老的 Django 版本里,此字段的真实名称是:

models.IPAddressField()
)
4.1.2 GenericIPAddressField() IPv4 地址字段的使用案例
item = models.IPAddressField()

(补充:这里以设置名为 item 的 IPAddressField() IPv4 地址字段为例)


补充:
在老的 Django 版本里,此字段的真实名称是:

models.IPAddressField()
)

4.2 EmailField() 邮件地址字段

4.2.1 EmailField() 邮件地址字段的格式
<field> = models.EmailField(<option>)
4.2.2 EmailField() 邮件地址字段的可选项
unique = True

值唯一

4.2.3 EmailField() 邮件地址字段的使用案例
item = models.EmailField(unique = True)

(补充:这里以设置名为 item 的,且是唯一的 EmailField() 邮件地址字段为例)

4.3 UUIDField() UUID 字段

4.3.1 UUIDField() UUID 字段的格式
<field> = models.UUIDField()
4.3.2 UUIDField() UUID 字段的案例
item = models.UUIDField()

(补充:这里以设置名为 item 的 UUIDField() UUID 字段为例)

内容五:Django Models 常用的逻辑字段

5.1 AutoField() 自动递增字段

5.1.1 AutoField() 自动递增字段的格式
<field> = models.AutoField(<option>)
5.1.2 AutoField() 自动递增的可选项
primary_key = True

设置为主键

5.1.3 AutoField() 自动递增的使用案例
item = models.AutoField(primary_key = True)

(补充:这里以设置名为 item 的,且设置为主键的 AutoField() 自动递增字段为例)

5.2 BooleanField() 布尔(boolean)值字段

5.2.1 BooleanField() 布尔(boolean)值字段的格式
<field> = models.BooleanField(<option>)
5.2.2 BooleanField() 布尔(boolean)值字段的可选项
default=<default value>

(补充:设置布尔(boolean)值的默认值,默认值可选项有且只有:True 和 False)

5.2.3 BooleanField() 布尔(boolean)值字段的案例
item = models.BooleanField(default=False)

(补充:这里以设置名为 item 的,且默认值为 False 的布尔(boolean)值字段为例)

内容六:Django Models 常用的外部资源字段

6.1 FileField() 文件字段

6.1.1 FileField() 文件字段的格式
<field> = models.FileField(upload_to = "<directory/file>", <option>)
6.1.2 FileField() 文件字段的必选项
upload_to='<directory/file>'
6.1.3 FileField() 文件字段的可选项
max_length = '<length size>'
6.1.4 FileField() 文件字段的使用案例
item = models.FileField(upload_to ="./file", max_length = '4096')

(补充:这里以设置名为 item 的,读取本地的 ./file 文件,大小为 4096 的 FileField() 文件字段为例)

6.2 URLField() URL 字段

6.2.1 URLField() URL 字段的格式
<field> = models.URLField(max_length=<URL size>, <option>)
6.2.2 URLField() URL 字段的可选项
1) verify_exists = True

默认值为 True,如果 URL 不存在,则会返回 404


2) max_length=<URL size>

默认值为 200

6.2.3 URLField() URL 字段的使用案例
item = models.URLField(max_length= 200)

(补充:这里以设置名为 items 的,大小的为 200 的 URLField() URL 字段为例)

6.3 ImageField() 图片字段

6.3.1 ImageField() 图片字段的格式
item = models.ImageField(upload_to = "<directory/file>", <option>)
6.3.2 ImageField() 图片字段的可选项
1) height_field = <height size>
2) width_field = <width size>
3) max_length = <image size>
6.3.3 ImageField() 图片字段的使用案例
item = models.ImageField(upload_to = "./file")

(补充:这里以设置名为 item 的,读取本地的 ./file 文件的 ImageField() 图片字段为例)

参考文献:

https://docs.djangoproject.com/en/3.2/ref/models/fields/