AI智能
改变未来

Django models 常用数据类型

CharField

class CharField(max_length=None[, **options])# 字符串(存储从小到大各种长度)# 如果是巨大的文本类型,可以用 TextField,该字段默认的表单样式是 TextInput,CharField 必须接收一个额外的参数: max_length,在数据库层和 Django 表单验证中起作用, 用来限定字段的长度

IntegerField

class IntegerField([**options])# 整数(-2147483648 到 2147483648)# 默认的表单输入工具是TextInput

FloatField

class FloatField([**options])# 浮点数# max_digits 总位数(不包括小数点和符号)# decimal_places 小数位数# 举例, 要保存最大值为 999 (小数点后保存2位),你要这样定义字段:# models.FloatField(..., max_digits=5, decimal_places=2)

AutoField

class AutoField(**options)# 根据实际 ID 自动增长的 IntegerField# 添加记录时它会自动增长,你通常不需要直接使用这个字段# 自定义一个主键:my_id=models.AutoField(primary_key=True),如果你不指定主键的话,系统会自动添加一个主键字段到你的 model.

BooleanField

class BooleanField(**options)# true/false# 此字段的默认表单挂件是一个 CheckboxInput,如果你需要设置 null 值,则使用 NullBooleanField 来代替 BooleanField。如果Field.default没有指定的话, BooleanField 的默认值是 None。

TextField

class TextField([**options])# 大文本字段# 该模型默认的表单组件是 Textarea

EmailField

class EmailField([max_length=254, **options])# 带有检查 Email 合法性的 CharField# 它使用 EmailValidator 来验证输入合法性

DateField

class DateField([auto_now=False, auto_now_add=False, **options])# 日期字段# Argument 描述# auto_now 当对象被保存时,自动将该字段的值设置为当前时间,通常用于表示 \"last-modified\" 时间戳# auto_now_add 当对象首次被创建时,自动将该字段的值设置为当前时间,通常用于表示对象创建时间

DateTimeField

class DateTimeField([auto_now=False, auto_now_add=False, **options])# 日期时间字段# 类似 DateField 支持同样的附加选项

ImageField

class ImageField([upload_to=None, height_field=None, width_field=None, max_length=100, **options])# 类似 FileField, 不过要校验上传对象是否是一个合法图片# 它有两个可选参数:height_field 和 width_field,如果提供这两个参数,则图片将按提供的高度和宽度规格保存

FileField

class FileField([upload_to=None, max_length=100, **options])# 上传文件的字段# 字段不支持 primary_key 和 unique 参数,如果使用会生成 TypeError 错误,在旧版本 Django 中,upload_to 属性是必须的

URLField

class URLField([max_length=200, **options])# CharField 类型的 URL# 若 verify_exists 参数为 True (默认), 给定的 URL 会预先检查是否存在( 即URL是否被有效装入且没有返回404响应)

SlugField

class SlugField([max_length=50, **options])# 短标题# 一个 slug 只能包含字母、数字、下划线或者是连字符,通常用来作为短标签,通常它们是用来放在URL里的。与 CharField 类似, 你可以指定max_length 的值,如果没有指定 max_length, Django 将会默认长度为 50

FilePathField

class FilePathField(path=None[, match=None, recursive=False, max_length=100, **options])# 一个 CharField ,内容只限于文件系统内特定目录下的文件名# 参数, 其中第一个是必需的:# path 必填。这个 FilePathField 应该得到其选择的目录的绝对文件系统路径。例如: \"/home/images\"# match 可选,match 只匹配基本文件名(base filename), 而不是整个文件路径(full path)# recursive 可选,True/False,默认 False# allow_files 可选,True/False,默认 False# allow_folders 可选,True/False,默认 False

GenericIPAddressField

class GenericIPAddressField([protocol=both, unpack_ipv4=False, **options])# IPv4 或 IPv6 地址, 字符串格式 (例如 192.0.2.30 或 2a02:42fe::4)# 默认表单小部件是一个 TextInput

CommaSeparatedIntegerField

class CommaSeparatedIntegerField(max_length=None[, **options])# 逗号分隔的整数字段# 像 CharField 一样,需要一个 max_length 参数,同时数据库移植时也需要注意

BigIntegerField

class BigIntegerField([**options])# 64 位整数# 类似于一个 IntegerField,它的值的范围是 -9223372036854775808 到9223372036854775807 之间, 这个字段默认的表单组件是一个 TextInput

BinaryField

class BinaryField([**options])# 存储原始二进制码# 只支持 bytes 赋值,注意这个 Field 只有很有限的功能

PositiveIntegerField

class PositiveIntegerField([**options])# 类似 IntegerField, 但值必须是正数或者零(0)

UUIDField

class UUIDField([**options])# 存储 UUID# 使用 Python 的 UUID 类。当使用 PostgreSQL 数据库时,该字段类型对应的数据库中的数据类型是 uuid,使用其他数据库时,数据库对应的是char(32) 类型。使用 UUID 类型相对于使用具有 primary_key 参数的AutoField 类型是一个更好的解决方案。 数据库不会自动生成 UUID,所以推荐使用 default 参数:import uuidfrom django.db import modelsclass MyUUIDModel(models.Model):id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Django models 常用数据类型