正则表达式长度为4的整数_jango 2 笔记之models(4)

5b34a37518a9d54f6cf0ae6757c03c35.png

django 字段

字段

模型中最重要且唯一必要的是数据库的字段定义。字段在类属性中定义。定义字段名时应小心避免使用与 模型 API 冲突的名称, 如 clean, save, or delete 等.

字段类型

models.AutoField 自增列 = int(11)

如果没有的话,默认会生成一个名称为 id 的列,如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。

BooleanField:

布尔类型字段,HTML挂件为CheckBoxInput.取值为:Ture/False,不能为null.默认值为None.

NullBooleanField:

布尔类型,HTML挂件为NullBooleanSelect,取值为:True/False/null.

models.CharField 字符串字段

  • 字符串字段,用于小到大的字符串。
  • 对于大量文本,请使用TextField。
  • 此字段的默认表单窗口小部件是a TextInput。
  • CharField 有一个额外的必要参数:
  • CharField.max_length
  • 字段的最大长度(以字符为单位)。max_length在数据库级别和Django的验证中强制执行 MaxLengthValidator。

models.BooleanField

  • 布尔类型=tinyint(1)
  • 不能为空,Blank=True
  • 在Django 2.1中更改:
  • 在2.1版本中,此字段不允许null=True,必须使用NullBooleanField。现在不鼓励使用后者,因为它可能会在未来版本的Django中被弃

models.ComaSeparatedIntegerField

  • 用逗号分割的数字=varchar
  • 继承CharField,所以必须 max_lenght 参数

models.DateField

  • 日期类型 date
  • DateField.auto_now_add:取值为False/True,作用为自动取值为实例创建的时间,创建于。 DateField.auto_now:取值为:False/True,作用为自动设置值为最后一次保存的时间,更新于。 auto_now、auto_now_add、default三个选项是互斥的.

models.DateTimeField

  • 日期类型 datetime
  • 同DateField的参数

TimeField:

  • 日期类型,使用的是python 的datetime.time实例,参数和上述一样.
  • 查询python参考可知,Data主要用于日期,表示年月日,Time主要用于时间,表示时分秒,而DateTime则是完整的年月日时分秒都有.

models.Decimal

  • 十进制小数类型 = decimal
  • 必须指定整数位max_digits和小数位decimal_places

models.EmailField

  • 字符串类型(正则表达式邮箱) =varchar
  • 对字符串进行正则表达式

models.FileField

  • 文件上传字段。
  • 有两个可选参数:
  • FileField.upload_to 此属性提供了设置上载目录和文件名的方法
  • FileField.storage 存储对象,用于处理文件的存储和检索。
  • FileField实例在数据库中创建为varchar 默认最大长度为100个字符的列。与其他字段一样,您可以使用max_length参数更改最大长度。

models.FloatField 浮点类型 = double

models.IntegerField 整形

models.BigIntegerField 长整形


integer_field_ranges = {

'SmallIntegerField': (-32768, 32767),

'IntegerField': (-2147483648, 2147483647),

'BigIntegerField': (-9223372036854775808, 9223372036854775807),

'PositiveSmallIntegerField': (0, 32767),

'PositiveIntegerField': (0, 2147483647),

}


models.IPAddressField 字符串类型(ip4正则表达式)

models.GenericIPAddressField 字符串类型(ip4和ip6是可选的)

参数protocol可以是:both、ipv4、ipv6

验证时,会根据设置报错

models.NullBooleanField 允许为空的布尔类型

models.PositiveIntegerFiel 正Integer

models.PositiveSmallIntegerField 正smallInteger

models.SlugField 减号、下划线、字母、数字

models.SmallIntegerField 数字

  • 数据库中的字段有:tinyint、smallint、int、bigint

models.TextField 字符串=longtext

  • 如果指定max_length属性,它将反映在Textarea自动生成的表单字段的 窗口小部件中。但是,它不会在模型或数据库级别强制执行。使用一个 CharField。

models.TimeField 时间 HH:MM[:ss[.uuuuuu]]

models.URLField 字符串,地址正则表达式

models.BinaryField 二进制

models.ImageField 图片

  • 继承所有属性和方法FileField,但也验证上载的对象是有效图像。除了可用于特殊属性FileField,一个ImageField也具有height和width属性
  • ImageField.height_field
  • 每次保存模型实例时,将使用图像高度自动填充的模型字段的名称。
  • ImageField.width_field
  • 每次保存模型实例时,将使用图像宽度自动填充的模型字段的名称。

models.FilePathField 文件

CharField的选择仅限于文件系统上某个目录中的文件名。有三个特殊参数,其中第一个是 必需的:

FilePathField.path

需要。从中可以FilePathField选择的目录的绝对文件系统路径 。示例:"/home/images"。

FilePathField.match

可选的。作为字符串的正则表达式,FilePathField 用于过滤文件名。请注意,正则表达式将应用于基本文件名,而不是完整路径。例如:"foo.*.txt$",这将匹配一个名为foo23.txt而不是bar.txt或foo23.png。

FilePathField.recursive

可选的。无论是True或False。默认是False。指定是否path应包括所有子目录

FilePathField.allow_files

可选的。无论是True或False。默认是True。指定是否应包含指定位置的文件。无论是这个还是 allow_folders必须的True。

FilePathField.allow_folders

可选的。无论是True或False。默认是False。指定是否应包括指定位置的文件夹。无论是这个还是allow_files必须的True。

当然,这些参数可以一起使用。

一个潜在的问题是match适用于基本文件名,而不是完整路径。所以,这个例子:

FilePathField(path="/home/images

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值