django 字段类型_access的数据库类型是

django 字段类型_access的数据库类型是django模型中常见字段类型

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

字段类型 字段类型指使用Django ORM创建数据库时支持的数据字段类型。

常用字段

(1) AutoField

自增的整型字段,必填参数primary_key=True,则成为数据库的主键,无该字段时,django会自动创建主键id字段。

(2) BigAutoField

一个64位整数,非常类似与AutoField,但是范围是从1~9223372036854775807。

(3) BigIntegerField

一个64位整数,非常类似于IntegerField,不同之处在于保证可以匹配从-9223372036854775808到9223372036854775807。此字段默认表单小部件是TextInput。

(4) BinaryField

一个用于存储原始二进制数据的字段,可以分配bytes,bytearray或memoryview。默认情况下,BinaryField设置editable为False,在这种情况下,他不能包含在ModelForm中,在django2.1中进行了修改:旧版本不允许设置editable为True。有一个额外的可选参数:max_length,字段的最大长度,以字符为单位。最大长度在django的验证中使用强制执行MaxLengthValidator。

(5) BooleanField

一个真假字段,该字段默认表单控件是CheckboxInput或者NullBooleanSelect。当没有设置default值是,BooleanField的值为None。

(6) IntegerField

整数类型字段,数值范围是—2147483648~2147483647.

(7) CharField

字符类型,必须提供max_length参数。代表字符的最大长度。

(8) DateField

日期类型,日期格式为YYYY-MM-DD,相当于python中的datetime.date实例。

参数:

auto_now:每次修改保存修改为当前日期时间,对于“最后修改的” 时间戳有用。在使用Model.save()保存时有效,使用QuerySet.update() 时不会自动更新。

auto_now_add:新创建对象时自动添加当前日期时间,用于“创建时间”时使用。

auto_nowauto_now_adddefault参数是互斥的,不能同时设置。

(9) DatetimeField

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

(10) DecimalField

固定精度的十进制数字,在python中由Decimal实例表示。有两个必需的参数:max_digits数字允许的最大位数,此数字必须大于或等于decimal_placesdecimal_places表示与数字一起存储的小数位数。例如:要存最大整数为999,小数为两位的数字,可以使用:

models.DecimalField(max_digits=5, decimal_places=2)

(11) DurationField

一个用于存储时间的字段-用Python在Python中建模timedelta。在PostgreSQL上使用时,使用的数据类型为interval,在Oracle上使用为。否则,将使用微秒。INTERVAL DAY(9) TO SECOND(6)bigint

(12) EmailField

使用EmailValidator检测该字段是否为有效的电子邮箱地址。

(13) FileField

文件上传字段,不支持primary_key参数,使用该参数时将引发错误。

有两个可选参数:

upload_to:设置上传目录和文件名的方法,并且可以通过两种方法进行设置。将参数附加到MEDIA_ROOT路径中,已形成本地文件系统上将存储上传文件的位置。

storage:一个存储对象,用于处理文件的存储和检索。

**注意:**在模型中使用FileField或ImageField时,需要执行以下几个步骤:

l 在settings.py中定义MEDIA_ROOT为django设置存储上载文件的目录的完整路径(这些文件并未直接存储在数据库中,在数据库中只是存储路径)。定义MEDIA_URL为该目录的基本公共URL,确保该目录可由web服务器的用户账号写入。

l 在模型中添加FileField或ImageField字段时,定义upload_to指定MEDIA_ROOT的路径用于上传文件的目录。

l 存储在数据库中的所有文件都是该文件的路径(相对于MEDIA_ROOT)。如果ImageField调用了,则mug_shot可以使用来获取摸板中图像的绝对路径。{undefined{ object.mug_shot.url }}

假入MEDIA_ROOT的设置为’/home/media’,并且upload_to设置为’photos/%Y/%m/%d’。所述**’%Y/%m/%d’** 的部分upload_to被strftime()格式化;’%Y’是四位数的年份,’%m’是两位数的月份,’%d’是两位数的日期。如果在2007年1月15日上传文件,该文件将保存在目录/home/media/photos/2007/01/15中。

l FieldFile.name:文件名,包括相对路径。

l FieldFile.url:一个只读属性,访问文件的相对URL。

(14) FloatField

代表在python中由float实例表示的浮点数。

(15) ImageField

继承FileField所有的方法,但还验证上传的对象为有效的图像。除了 可用于特殊属性FileField,一个ImageField也具有height和width 属性。为了便于查询这些属性,ImageField有两个额外的可选参数。在数据库中创建的为varchar列,默认最大长度为100字符。

ImageField.height_field:每次保存模型实例时,模型字段的名称都会自动填充图像的高度。

ImageField.width_field:每次保存模型实例时,模型字段的名称都会自动填充图像的宽度。

(16) IntegerField

一个整数。从-2147483648到2147483647.

(17) GenericIPAdressField

字符串格式的IPv4和IPv6地址(如:192.0.2.30或2a02:42fe::4)。默认表单格式为TextInput。

(18) TextField

文本字段。默认表单小部件是Textarea,如果指定max_length属性,将反映在Textarea自动生成的表单字段中。

(19) TimeField

时间,在Python中以datetime.time实例表示。接受与相同的自动填充选项DateField。

(20) URLField

一个CharField一个URL,通过验证 URLValidator。

此字段的默认表单小部件是TextInput。

像所有CharField子类一样,URLField采用可选 max_length参数。如果未指定 max_length,则使用默认值200。

(21) UUIDField

用于存储通用唯一标识符的字段。使用Python的 UUID类。在PostgreSQL上使用时,它存储在uuid数据类型中,否则存储在 中char(32)。

是通用的唯一标识符,可以很好的替代带有的 primary_key的AutoField字段。数据库不会为您生成UUID,因此建议使用default:

import uuidfrom django.db import models

class MyUUIDModel(models.Model):

 	id=models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False)

(22) ForeignKey

多对一关系,需要两个位置参数:与模型相关的类和on_delete选项,如果创建地柜关系(一个与自身具有多对一关系的对象)则使用model.ForeignKey(‘self’,on_delete=models.CASCADE)。如果需要在尚未定义的模型上创建关系,则可以使用模型的名称,而不是模型对象本身。如:

from django.db import models

class Car(models.Model):
   manufacturer = models.ForeignKey('Manufacturer',on_delete=models.CASCADE, )

class Manufacturer(models.Model):
  	pass

参数:

ForeignKey.on_delete:所有可能的参数都在django.db.models中。当删除由a引用的对象时,Django将模拟on_delete参数指定的SQL约束的行为。例如:如果有一个可为空的字段,并且在删除引用的对象时将其设置为空,如

user = models.ForeignKey(

​    User,

​    models.SET_NULL,

​    blank=**True**,

​    null=**True**,)

**CASCADE:**级联删除。Django会在DELETE CASCADE上模拟 SQL约束的行为,并删除包含ForeignKey的对象。

**DO_NOTHING:**不采取行动。

**PROTECT:**通过引发ProtectedError的子类来防止删引用的对象,是django.db.IntegrityError的子类。

SET_NULL:删除时把外键置为null,当null=True时才可以使用。

SET_DEFAULT:把外键置为默认值,必须要设置默认值时才可以使用。

(23) ManyToManyField

多对多关系表,需要一个位置参数:与模型相关的类,工作原理与ForeignKey完全相同,包括递归和惰性关系。Django会自动创建中间的链接表来表示多对多的关系。

(24) OneToOneField
一对一关系的关系,从概念上与带有unique=True的ForeignKey相似,但是在关系的另一侧(主表数据)直接返回单个对象。
参考文章:https://blog.csdn.net/qq_42486675/article/details/106772211

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196784.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Ubuntu 10.04 更新源[通俗易懂]

    Ubuntu 10.04 更新源[通俗易懂]1.sudogedit/etc/apt/sources.list编辑你的源列表,将原来的内容全部删除,当然之前也可以用sudocp/etc/apt/sources.list/etc/apt

  • Spring的基本配置和Spring与Mybatis的整合

    Spring的基本配置和Spring与Mybatis的整合Spring:        Spring是一个开源框架,Spring是于2003年兴起的一个轻量级的Java开发框架,由RodJohnson在其著作ExpertOne-On-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪…

  • 2021.1 datagrip激活码【2021最新】

    (2021.1 datagrip激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~0U…

  • Q学习(Q-learning)简单理解「建议收藏」

    Q学习(Q-learning)简单理解「建议收藏」第1节Q-learning逐步教程本教程将通过一个简单但又综合全面的例子来介绍Q-learning算法。该例子描述了一个利用无监督训练来学习未知环境的agent。假设一幢建筑里面有5个房间,房间之间通过门相连。我们将这五个房间按照从0至4进行编号,且建筑的外围可认为是一个大的房间,编号为5。房间结构如下图:上图的房间也可以通过一个图来表示,房间作为图的节点,两个房间若有门相连,则相应节点间对应一条边如图2所示图2房间结构对应的图第2节Q-learning手工推演…

  • vue 中 Promise 使用方法

    vue 中 Promise 使用方法1.Promise基本概念:Promise是一个构造函数,所以可以new出一个Promise的实例;在Promise上有两个函数resolve(成功之后的回调函数)和reject(失败后的回调函数);在Promise构造函数的prototype属性上,有一个.then()方法。所以只要是Promise构造函数创建的实例,都可以访问到.then()方法;Promise表示一个一步操作,每当我们new一个Promise的实例,这个实例就代表具体的异步操作。Promise创建

  • integer常量池在哪_java 常量池

    integer常量池在哪_java 常量池常量池java中存在字符串常量池,维护了所有String对象使用Strings=”zx”的时候是使用String.valueOf(“zx”)从常量池中找了个对象返回在使用new的时候是直接创建一个新的对象Integer中也有常量池其中缓存了-128到127之间的数字(一个字节八位大小)Integera=127与Integerb=127相等吗对于对象引用类型:==比较的是对象的内存地址。对于基本数据类型:==比较的是值。如果整型字面量的值在-128到127

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号