FieldType数据库字段类型

常见的FieldType数据库字段类型

  1、AutoField:自增Field域,自动增加的一个数据库字段类型,例如id字段就可以使用该数据类型,参数中必须填入primary_key=True

  2、BigAutoField:和AutoField相同,只是比AutoField要大,参数中必须填入primary_key=True

  3、BigIntegerField:大整型,只要用于存储整型的数据

  4、BinaryField:主要是存储原始的二进制数据

  5、BooleanField:主要是存储布尔类型的数据,0和1

  6、CharField:主要存储字符串的数据类型

  7、DateField:主要存储日期类型的数据类型,日期格式为YYYY-MM-DD

  8、DateTimeField:主要存储时间相关的数据类型,格式为YYYY-MM-DD HH:MM:[ss[.uuuuuu]][TZ]

    注意:DateField与DateTimeField有两个属性,配置auto_now_add=True,创建数据记录的时候会把当前时间添加到数据库,配置auto_now=True,每次更新数据记录的时候都会更新该字段

  9、DecimalField:主要存储固定精度的十进制数据

    --参数:max_digits(小数总长度)/decimal_places(小数位长度)

  10、EmailField:存储电子邮件格式的数据,Django Admin以及ModelForm中提供验证机制

  11、FileField:存储文件类型的数据,文件上传到指定目录

    --参数:upload_to="...."(上传文件的保存路径)/storage=None(存储组件,默认django.core.files.storage.FileSystemStorage)

  12、FilePathField:存储文件路径的数据,提供读取文件夹下文件的功能

    --参数:path(文件夹路径)/match=None(正则匹配)/recursive=False(递归下面的文件夹)/allow_files=True(允许文件)/allow_folders=False(允许文件夹)

  13、FloatField:存储浮点型数据

  14、ImageField:存储图片型数据,文件上传到指定目录

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

  15、IntegerField:存储整型数据 

  16、GenericIPAddressField:存储IP地址信息数据

  17、NullBooleanField:可以存储布尔值数据,也可以存储空null数据

  18、PositiveIntegerField:主要存储正整数数据

  19、SmallIntegerField:小整型,主要用于存储整型的数据

  20、TextField:存储文章内容信息数据,存储比较长的文本信息

  21、TimeField:存储时间信息

  22、URLField:存储URL网址信息,Django Admin以及ModelForm中提供验证url

  23、IPAddressField:Django Admin以及ModelForm中提供验证IPV4机制

  24、GenericIPAddressField:Django Admin以及ModelForm中提供验证IPV4和IPV6机制  ·

常用关系型数据表处理Field 

  1、处理一对多关系数据表:使用ForeignKey

  2、处理多对多关系数据表:使用ManyToManyField

字段参数

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

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

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

  4、default:为该字段设置默认值

关系字段

  1、to:设置要关联的表

  2、to_field:设置要关联的表的字段

  3、related_name:反向操作时,使用的字段名,用于代替原反向查询时的"表名_set"

  4、on_delete:当删除关联表中的数据时,当前表与其关联的行的行为,例如删除一个出版社,那么和这个出版社有关联的书籍也都被删除掉了,下面介绍on_delete的参数值:

    on_delete=models.CASCADE:删除关联数据,与之关联也删除

    on_delete=models.DO_NOTHING:删除关联数据,引发错误IntegrityError

    on_delete=models.PROTECT:删除关联数据,引发错误ProtectedError

    on_delete=models.SET_NULL:删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)

    on_delete=models.SET_DEFAULT:删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)

    on_delete=models.SET:删除关联数据:

      a、与之关联的值设置为指定值,设置:models.SET(值)

      b、与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

  5、db_constraint:是否在数据库中创建外键约束,默认为True,db_constraint一般使用在建立数据表连接关系当中(例如创建外键),如果使用False,则是限制了表之间没有关联,达到了软连接的效果

元信息

  ORM对应的类里面包含另一个Meta类,而Meta类封装了一些数据库的信息,主要字段如下:

    1、db_table:ORM在数据库中的表名默认为app_类名,可以通过db_table可以重写表名

    2、index_together:联合索引,给两列做索引

    3、unique_together:联合唯一索引,两列不能重复

    4、ordering:指定默认按什么字段顺序,只有设置了该属性,我们查询到的结果才可以被reverse()

具体介绍可以查看https://docs.djangoproject.com/en/dev/ref/models/fields/

 

END

posted @ 2022-03-02 18:18  Snails蜗牛  阅读(860)  评论(0编辑  收藏  举报