ORM中模型层中其他的常用字段和参数

发布时间 2023-08-04 15:58:26作者: Maverick-Lucky

ORM字段

AutoField:

  int 自增列,必须填入参数primary_key = True 

IntegerField:

  一个整数类型

BigAutoField:

  - bigint自增列,必须填入参数 primary_key=True

CharField:

  字符类型,必须提供max_length参数, max_length表示字符长度。  # 需要存储邮箱格式的数据,就是字符串格式存储CharField

DateField:

  日期字段,日期格式 YYYY-MM-DD,相当于Python中的datetime.date()实例

DateTimeField:

  日期时间字段,格式 YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ],相当于Python中的datetime.datetime()实例

auto_now:每次修改数据的时候都会自动更新当前时间

auto_now_add:只在创建数据的时候记录创建时间后续不会自动修改了

TimeField(DateTimeCheckMixin, Field): 

  时间格式      HH:MM[:ss[.uuuuuu]]

BooleanField(Field):

  - 布尔值类型

TextField(Field) text:

  文本类型: 可以存储大文本,写一篇文章 text

EmailField(CharField):

  字符串类型,Django Admin以及ModelForm、Forms组件中提供验证机制

FileField(Field):

  字符串,路径保存在数据库,文件上传到指定目录
  参数:

    upload_to = "" 上传文件的保存路径
    storage = None 存储组件,默认django.core.files.storage.FileSystemStorage

ImageField(FileField):

  - 字符串,路径保存在数据库,文件上传到指定目录

  - 参数:
    upload_to = "" 上传文件的保存路径
    storage = None 存储组件,默认django.core.files.storage.FileSystemStorage
    width_field=None, 上传图片的高度保存的数据库字段名(字符串)
    height_field=None 上传图片的宽度保存的数据库字段名(字符串)

FloatField(Field):

  - 浮点型

DecimalField(Field):

  max_digits,小数总长度

  decimal_places,小数位长度

ORM字段参数

null:用于表示某个字段可以为空

unique:如果设置为unique=True 则该字段在此表中必须是唯一的

db_index:如果db_index=True 则代表着为此字段设置索引

default:为该字段设置默认值

DateField和DateTimeField

auto_now_add:配置auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库

auto_now:配置上auto_now=True,每次更新数据记录的时候会更新该字段

choices # 先忽略