常见的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

    1. 一般外键字段定义在多的一方

    2.外键字段的第一个参数是一个位置参数,就是要关联的模型,可以是模型类本身,也可以是字符串形式的导入路径(当引用其他应用的模型,和引入后定义的模型时很有用)

    3.在数据库层面,django会在字段名的后面附加 '_id'来创建数据库列名。

    4.注意:有时候为了效率,在数据库不会创建外键,在django中可以通过 ForeignKey 字段中指定 db_constraint=False 来不创建外键约束

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

  3、 处理一对一关系数据表:使用 OneToOneField

  一对多:外键字段在多的一方

  多对多:外键字段统一建在第三张关系表

  一对一:建议放在查询频率较高的表

具体介绍可以查看 https://docs.djangoproject.com/en/3.2/ref/models/fields/#module-django.db.models.fields

Django中models下常用Field以及字段参数的更多相关文章

  1. django中models field详解

    本文参考自:django官方文档models/field 在model中添加字段的格式一般为:  field_name = field_type(**field_options) 一  field o ...

  2. django中models阅读笔记

    一.使用数据库需要设置settings.py文件. DATABASES = { 'default': { 'ENGINE': 'django.db.backends.', # Add 'postgre ...

  3. Django中ORM模板常用属性讲解

    学习了ORM模板中常用的字段以及使用方法,具体如下: from django.db import models # Create your models here. # 如果要将一个普通的类映射到数据 ...

  4. Django中的form设置field的html属性

    在Django中无论何种field,都有一个widget的属性: class Field(object): widget = TextInput # Default widget to use whe ...

  5. Django中models定义的choices字典使用get_FooName_display()在页面中显示值

    问题 在django的models.py 中,我们定义了一些choices的元组,类似一些字典值,一般都是下拉框或者单多选框,例如 0对应男 1对应女等等 看下例子: class Area(model ...

  6. django中models字段的联合限制

    一.字段联合使用的限制设置: 有这么个需求,现有两个字段,A字段是选择用户是不是vip, B字段是统计用户的vip等级; 要求: 用户不是vip时,A选择false,B字段为空; 是vip时,A字段选 ...

  7. django 中models表的多对一,多对多的理解

    django 表的理解 好处:设计的好,会清晰,易于理解和维护,后期开发事半功倍,一目了然. 1. 一对一的表,两表的属性实际上完全可以合并成一个表,共用一个主键即可: 2. 一对多的表,可以设中间关 ...

  8. django中models联合唯一unique_together

    例: 文章点赞 class ArticleUpDown(models.Model): """ 点赞表 """ nid = models.Au ...

  9. 详解Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...

  10. Django中六个常用的自定义装饰器

    装饰器作用 decorator是当今最流行的设计模式之一,很多使用它的人并不知道它是一种设计模式.这种模式有什么特别之处? 有兴趣可以看看Python Wiki上例子,使用它可以很方便地修改对象行为, ...

随机推荐

  1. linux忘记密码-进入单用户模式修改密码

    1.重启系统 重启可以使用命令 reboot.init 6.shutdown -r now 或点击VMware-虚拟机-电源-重新启动客户机 2.进入GRUB界面 重启后,在启动界面按上下方向键选择第 ...

  2. PY0271验证码的创建

    生成的 随机背景色的 效果 from PIL import Image,ImageDraw,ImageFont,ImageFilterimport random# 设置随机的背景颜色.def rndC ...

  3. asp.net core 全局授权管理系统简介

    大家好,我最近在做一个管理系统,我希望能做出一种授权机制,通过数据库的配置,来动态管控每个登入用于的访问权限. 因为才接触core不久,了解core的授权机制还是用了些时间的. 所以总结出来,供大家分 ...

  4. Spring中最常用的11个扩展点

    转载自: 微信公众号 [Java后端技术] 前言 我们一说到spring,可能第一个想到的是 IOC(控制反转) 和 AOP(面向切面编程). 没错,它们是spring的基石,得益于它们的优秀设计,使 ...

  5. 接入GoogelAdmob C#服务器端验证 (SSV) 回调

    记一次接入谷歌广告验证 官方文档:https://developers.google.cn/admob/android/rewarded-video-ssv 需要httpserver进行验证,项目里有 ...

  6. JAVA查漏补缺 1

    JAVA查漏补缺 1 目录 JAVA查漏补缺 1 基本数据类型 数组 方法参数传递机制 基本数据类型 数据类型 关键字 取值范围 内存占用(字节数) 整型 byte -128~127 1 整型 sho ...

  7. lua如何转化为exe

    在这里下载    https://wwn.lanzout.com/iIS9d07rpesh 然后用cmd到 下载的盘:\luapack\luapack\bin\Debug 然后glue.exe srl ...

  8. Hadoop批处理方案 和 MPP架构方案 作为数据仓库的区别

    1,原理对比 MPP方案中的数据通常在节点之间拆分(分片),每个节点仅处理其本地数据.而且,每家都有专门为 MPP 解决方案开发的复杂而成熟的 SQL 优化器.它们都可以在内置语言和围绕这些解决方案的 ...

  9. 【Word】如何批量导出ppt中的备注

    [Word]如何批量导出ppt中的备注 文件 | 导出 | 创建讲义 | 备注在幻灯片旁 在word中删除左边两列,复制剩下的表格 | 粘贴-只保留文本

  10. 软件架构易用性在软件UI中的体现

    软件架构易用性在软件UI中的体现 贾硕航 (石家庄铁道大学,河北省石家庄市,050000) 摘要:易用性(usability)是一种以使用者为中心的设计概念,易用性设计的重点在于让产品的设计能够符合使 ...