Django的ORM框架 field类型和参数总结

6.2、Django -ORM模型常用Field 以下所有的ORM的Field都是在~models.py中 # 先导入models import django.db import models 1、AutoField(Field) - int自增列,必须填入参数 primary_key=True 注意:如果使用自己定义的Field来作为主键,必须要设置primary_key=True 2、BigAutoField(AutoField) - b... 阅读详情

Django的ORM(Object-Relational Mapping)框架提供了一种机制,允许开发者以Python类的方式定义数据库模型,而无需直接编写SQL语句。在定义模型时,字段(Field)是不可或缺的部分,它们定义了数据库表中每一列的数据类型和特性。以下是一些常用的Django ORM字段类型及其参数总结:

常用字段类型

  1. AutoField
    • 自增的整数型字段,通常作为主键。
    • 参数:primary_key=True(设为True时,Django会自动将其设置为模型的主键)
  2. CharField
    • 字符串字段,用于较短的文本。
    • 参数:max_length(必须,表示字符串的最大长度),null=True(允许为空),blank=True(表单验证时允许为空)
  3. TextField
    • 大文本字段,用于较长的文本。
    • 参数:null=True,blank=True
  4. IntegerField
    • 整数型字段。
    • 参数:null=True,blank=True(对于整数,blank通常不用,因为它更多用于表单验证)
  5. FloatField
    • 浮点型字段,用于存储需要小数点的数值。
    • 参数:null=True
  6. DecimalField
    • 十进制浮点数,用于需要精确表示的数值,如货币。
    • 参数:max_digits(总位数),decimal_places(小数点后的位数),null=True
  7. BooleanField
    • 布尔型字段,存储True或False。
    • 参数:default=False(默认值),null=True(通常不用,因为布尔型有默认值)
  8. DateField
    • 日期字段,格式为YYYY-MM-DD。
    • 参数:auto_now=False(每次保存对象时,自动设置为当前日期,通常用于更新时间戳),auto_now_add=False(创建对象时自动设置为当前日期,通常用于创建时间戳),null=True
  9. DateTimeField
    • 日期时间字段,格式为YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]。
    • 参数:与DateField相同
  10. EmailField
    • 字符串类型的电子邮件地址字段。
    • 参数:max_length(默认为254),null=True,blank=True
  11. URLField
    • 用于保存URL地址的字符串字段。
    • 参数:max_length(默认为200),null=True,blank=True
  12. ImageField
    • 用于上传图片的字段,需要PIL库。
    • 参数:upload_to(上传目录,可以是函数或字符串),height_field(存储图片高度的字段名,需先定义),width_field(存储图片宽度的字段名,需先定义),null=True,blank=True
  13. FileField
    • 用于上传文件的字段。
    • 参数与ImageField类似,但不包括height_field和width_field。

通用参数

  • verbose_name:为字段设置一个易于理解的名字,用于Django admin后台等。
  • help_text:为字段提供额外的帮助文本。
  • unique:设置为True时,该字段在表中必须是唯一的。
  • choices:设置字段的选项,用于选择类型字段(如性别)。
  • db_index:设置为True时,会为该字段创建数据库索引。
  • editable:设置为False时,在Django admin后台中将不可编辑。

以上仅是Django ORM中字段类型及其参数的一个概览,实际使用中还有很多其他参数和字段类型可供选择。

在Django ORM中,除了之前提到的常见字段类型外,还有其他一些字段类型用于满足不同的数据存储需求。以下是一些额外的字段类型:

  1. BigIntegerField:
    • 用于存储非常大的整数。
    • 它与IntegerField类似,但范围更大,适用于需要存储大整数的场景。
  2. SmallIntegerField:
    • 用于存储小整数。
    • 它的范围比IntegerField小,但足以满足许多日常需求,同时可能有助于节省数据库空间。
  3. PositiveIntegerField 和 PositiveSmallIntegerField:
    • 这两个字段分别用于存储正整数和小正整数。
    • 它们不允许存储负数,适用于需要确保数据非负的场景。
  4. SlugField:
    • 字符串类型,常用于存储URL的slug部分。
    • 它自动将输入的字符串转换为全小写,并将空格替换为连字符或下划线,以生成适用于URL的slug。
  5. UUIDField:
    • 用于存储UUID值。
    • UUID是一种广泛使用的唯一标识符,Django提供了这个字段类型以方便地存储UUID值。
  6. GenericIPAddressField:
    • 用于存储IPv4或IPv6地址。
    • 它提供了对IP地址的验证,并允许指定是存储IPv4、IPv6还是两者都支持的地址。
  7. CommaSeparatedIntegerField:
    • 字符串类型,但专门用于存储逗号分隔的整数列表。
    • 它将输入的字符串视为逗号分隔的整数列表,并在查询时提供相应的便利。
  8. FilePathField:
    • 字符串类型,用于存储文件系统中的文件路径。
    • 它允许你指定一个目录,并从该目录中选择文件,以获取文件的相对路径。
  9. BinaryField:
    • 用于存储二进制数据。
    • 它允许你以二进制形式存储任何类型的数据,如图片、文件或其他二进制文件。
  10. DurationField:
    • 用于存储时间长度。
    • 它以Python的timedelta对象形式存储时间长度,并允许进行相应的时间计算。
  11. ForeignKey、OneToOneField 和 ManyToManyField:
    • 这三个字段类型用于定义模型之间的关系。
    • ForeignKey用于定义一对多关系,OneToOneField用于定义一对一关系,ManyToManyField用于定义多对多关系。

这些字段类型提供了丰富的选项,以满足Django项目中各种数据存储和关系定义的需求。在实际应用中,你可以根据具体需求选择合适的字段类型来定义模型。

请注意,Django ORM的字段类型可能会随着Django版本的更新而发生变化或增加新的类型。因此,建议查阅最新的Django官方文档以获取最准确和最新的信息。

Django ORM Field源码解读 阅读详情

相关推荐

python-django 第三章 常用models的Field

第三章 常用models的Field List item 1、models.AutoField   自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一个自增列,必须设置primary_key=True。 2、models.CharField   字符串字段   必须设置max_length参数 3、models.BooleanField   布尔类型=tinyint(1)   不能

Lost_sheep_sp的博客 616

从源码中详解Django中 Models的Field字段.

谈到django,就不得不提一下其中的model模型了,这里面的Field字段也是一个学点,只有真正掌握这些,才能顺势而为, 一起来阅读源码学习吧。

Blog沙漏在下雨 2492

Django之ORM操作初了解

在我们根目录中的setting.py中可以看见如下代码以连接数据库:在根目录中的setting.py中注册app:编写models.类...执行命令这一步分为两小步也就是两个命令python manage . py makemigrations # 找到所有已注册的app中的models.py中的类读取 -> migrations配置 python manage . py migrate # 读取已注册的app下的migrations配置 -> SQL语句 -> 同步数据库。

xiaoyu070321的博客 595

Django模型的Field Types总结

Field Types 常用参数: null 如果设置为 True , Django 存放一个 NULL 到数据库字段。默认为 False。 blank 如果设置为 True , 此 field 允许为 blank (空白),默认为 False。 choices 一个2元元组的元组或者列表,如果执行 choices , Django 的 admin 就会使用 选择框而不是标准的 te...

Devil_2009的专栏 4万+

Django从理论到实战(part28)--ORM常用Field详解

学习笔记,仅供参考 参考自:Django打造大型企业官网–Huang Y; ORM常用Field详解 AutoField 映射到数据库中是int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。如果你想指定一个其他名字的并且具有自动增长的主键,使用AutoField也是可以的。 BigAutoField 64位的整形,类似于AutoField,只不过是产生的数据的范围是从1-9223372036854775807。 Boolea

小山羊的学习日志 594

基于人脸识别的驾驶员疲劳检测方法研究

摘 要交通安全问题愈发严重,疲劳驾驶已是造成交通事故的主要因素之一。为减少因疲劳驾驶造成的交通事故,本文设计了一种基于图像处理技术的疲劳驾驶监测系统,该系统结合了肤色模型、灰度积分投影技术以及PERCLOS方法,旨在通过实时视频图像分析准确检测驾驶员的疲劳状态。首先,系统通过肤色模型从图像中有效提取人脸区域,并在此基础上利用Haar级联分类器进行人脸检测,确保在人脸角度变化或部分遮挡的情况下依然能够实现高效识别。接着,灰度积分投影技术被应用于眼部定位,通过分析眼睛区域的灰度变化,精确确定眼睛的上下边界,从

carrott0617的博客 1005

Django的模型Field

域类型 (Field types) 一、数值类 1、整型 (1)IntegerField 整型,范围 [-2147483648, 2147483647] ,即 [-2^31, 2^31-1],32位系统能够存储的最大的符号型整型常量2147483647 (首位为符号位,又有0占位,故而是2^31-1) (2)SmallIntegerField 短(小)整型,取值范围依...

╮(╯_╰)╭ Don't expect me to reply to you in time 714

修复zookeeper未授权访问漏洞

【代码】修复zookeeper未授权访问漏洞。

qq_28392947的博客 4067

Django模型层操作之Fields

模型层表操作之Fiekds字段,字段名命名限制,字段类型,字段选项,设置字段的自述名字,建立表关系,自定义字段。

weixin_47035302的博客 1773

基于gem5模拟trace的cache模拟器的实现

在做计算机体系结构的时候,模拟器是一个重要且又有效的工具。其中gem5集成了gem和m5的优点,使用起来比较简单和方便。其中包括了se模式和fs模式,se模式是在gem5运行我们已经编译好的程序,可以获取cache,cpu状态等数据,fs模式下可以模拟操作系统,我们可以将我们自己修改的linux内核加载到哥们上运行。下面介绍了使用gem5的se模式,运行编译好的ARM可执行文件。获取访存的trac

gaoxiang的专栏 8891

基于 Qt C++ 的 2D 动画制作工具

你可以修改它的中心坐标 (X, Y)、宽度 (W)、高度 (H),或点击 "选择颜色" 按钮改变其填充色。* **图形视图 (`QGraphicsView` 和 `QGraphicsScene`)**: 用于显示和编辑当前帧的内容。

寒寒豆豆软件公司的博客 111

Django实战系列(四):Django Model Field 类类型

类提供了丰富的类型和参数,覆盖了绝大多数数据库存储和验证需求。存储简短的标签字符串(只含字母、数字、连字符、下划线),通常用于 URL 中的标识符。类是模型(Model)中定义数据库字段的基类,它决定了字段在数据库中的类型(如。)以及在表单中的验证逻辑。字段的人类可读名称(未指定时自动从字段名生成)。存储固定精度的十进制数,适合财务数据(需指定。类型,覆盖了常见的数据存储和验证需求。字段的默认值(可以是值或可调用对象)。定义多对一关系,需指定关联的模型和。定义多对多关系,需指定关联的模型。

sre救赎之路 1155

打脸来的太快了,又发现一个Trae的宝藏功能--内置浏览器可以指定机型来显示前端界面

今天给大家分享一个Trae的实用功能,就是SOLO模式下内置浏览器可以指定不同的手机、平板机型来查看前端页面显示效果,我感觉这个功能很棒,忍不住就跟大家分享一下。

cpp加油站的专栏 6561

【转】Django Model field reference学习总结

Django Model field reference学习总结(一) 本文档包含所有字段选项(field options)的内部细节和Django已经提供的field types。 Field 选项 下列参数对所有字段类型都是有效的,同时这些参数也是可选的。 null Field.null 如果为True,Django就会将空值(empty)存储为数据库中的NULL。默...

weixin_30360497的博客 418

Claude Code auto mode 管理 subagents 的三道安全闸门

文章摘要: Claude Code的auto mode核心在于重构多代理协作的安全边界,将信任拆解为三个检查点:任务委派前评估主会话指令是否越界(v2.1.178新增);执行中强制subagent继承主会话权限模式,禁止自行降级;返回前审查完整动作历史并附加安全警告。这种设计通过动态运行时约束(classifier)与多层防线(tools限制、hooks等)结合,避免安全策略分散化。auto mode并非完全放权,而是通过减少常规提示+后台严格检查实现平衡,与隔离环境专用的bypassPermissions

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 73

R语言做一个 GM (1,1)灰色预测模型

累加生成是GM(1,1)模型的另一个重要步骤,它通过构造累加生成序列,把非线性非平稳时间序列转化为线性平稳时间序列。GM(1,1)是一种基于灰色系统理论的预测模型,通常用于中小样本的非线性、非平稳时间序列数据分析。灰色预测模型的核心是灰度处理,将原始时间序列转化为灰色时间序列。这里使用R语言中的diff函数对时间序列进行一次差分,然后对结果取累加和得到灰度序列。以上是GM(1,1)灰色预测模型在R语言中的实现步骤。需要注意的是,GM(1,1)模型适用于中小样本的时间序列预测,对于长期预测效果可能较差。

Mrrunsen的博客 3841

Django:模型_ORM常用Field介绍

模型常用属性 1、在Django中定义了一些Field来与数据库表中的字段类型进行映射:即使用Field来定义表中列值的数据类型 2、在model中添加字段的格式一般为:field_name = field_type(**field_options) AutoField 1、映射到数据库中是int类型,可以有自动增长的特性。支持最大长度为11的整数 2、一般不需要使用这个类型...

不怕猫的耗子z 1895

Y-Branch and a closed y-branch loop

双臂后面的区域,我们将它的双臂使用一个波导进行了连接,使得它本身形成了一个闭合回路,因此,该结构被称作。它们均是用来对经过它们的光束能量进行分割的一种器件。首先,我们知道一点,在光波导层面,今天给大家介绍一下,什么是。

u011699626的博客 627

Django--ORM模型Field介绍及外键使用

常用字段: 在django中,定义了一些field来与数据库表中的字段类型来进行映射。 Autofield:映射到数据库中的Int类型,可以有自动增长的特性。一般不需要使用这个类型,如果不指定主键,那么模型会自动的生成一个叫做id的自动增长的主键。 BigAutofield:64位的整型,类似于AutoField,只是产生的数据范围不同。 BooleanField:在模型层面接收的是True/Fa...

u013465115的博客 728

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Django基础(七)———模型常用Field以及Meta配置

上篇文章给大家介绍类Django和MySQL数据库的综合使用,以及框架中的ORM模型。这篇文章将继续讲述ORM模型当中常用的Field以及Meta配置

本人的博客 961

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

django开发系列:ORM常用Field

django开发系列:ORM常用Field navie时间和aware时间: 什么是navie时间?什么是aware时间? navie时间:不知道自己的时间表示的是哪个时区的。也就是不知道自己几斤几两。比较幼稚。 aware时间:知道自己的时间表示的是哪个时区的。也就是比较清醒。 pytz库: 专门用来处理时区的库。这个库会经常更新一些时区的数据,不需要我们担心。并且这个库在安装Django的...

zsddragon的博客 381

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Django ORM 常用字段和参数

目录 Django ORM 常用字段和参数 models中的常用字段 如何自定义char类型字段 字段内的关键字参性参数 DateField和DateTimeField 关系字段 ForeignKey ...

weixin_45967126的博客 470

Django数据库ORM模型使用(介绍、配置、创建表)!Django的ORM模型如何连接MySQL并创建表? ✧*。٩(ˊᗜˋ*)و✧*。 Django初体验

连接MySQL数据库 使用djangoORM连接MySQL数据库我们需要安装mysqlclient这个模块,如果你在安装的时候报错,提示c++库未安装可以尝试从浏览器中下载mysqlclient库并离线安装。下载地址 如果安装失败,就先升级一下pip(一定要保证pip在最新状态)可以使用清华源升级pippip install --upgrade -i https://pypi.tuna.tsing...

寻觅的博客 1477

Django ORM (一) 创建数据库和模型常用的字段类型参数及Field 重要参数介绍

创建一个 Django 项目及应用 django-admin startproject orm cd orm python manage.py startapp app01 在 models.py 上创建数据库结构 from django.db import models class Publisher(models.Model): name = models.CharField(...

weixin_30808693的博客 160

Django ORM模块精讲

ORM (Object Realtional Mapping)即对象关系映射,它是一种基于关系型数据库的程序技术。ORM 允许你使用类和对象对数据库进行操作,这大大提高了对数据库的控制,避免了直接使用 SQL 语句对数据库进行操作。这种程序技术的底层主要是通过映射机制实现的,有兴趣的可以自己研究一下!Web 开发中对数据库的操作是必不可少的,然而每种数据库的操作方式以及用法不尽相同。

sshjsgd的博客 1020

django orm 基本Field介绍

ORM:object relational mapping,对象关系映射 django中使用原生sql的弊端:   1、SQL语句重复率很高,利用率不高   2、如果业务逻辑生变,原生SQL更改起来比较多   3、容易忽略一些web安全问题,如SQL注入 ORM的优点:   易用性:使用ORM做数据库的开发可以有效的减少重复SQL语句的概率,写出来的模型也更加直观、清晰。   性能损耗小:OR...

FEI441544558的专栏 396
上一篇: Django的CBV模式
下一篇: Django ORM模型中字段常用的参数总结:
python_136
博客等级 码龄4年 560粉丝 118原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值