当前位置: 芃睿知识网 > 建站常见问题

Django models 数据库数据类型有哪些

时间:2021年10月23日 23:45   作者:知识网   出处:原创

CharField

class CharField(max_length=None[, **options])

# 字符串(存储从小到大各种长度)
# 如果是巨大的文本类型,可以用 TextField,该字段默认的表单样式是 TextInput,CharField 必须接收一个额外的参数: max_length,在数据库层和 Django 表单验证中起作用, 用来限定字段的长度。

IntegerField

class IntegerField([**options])

# 整数(-2147483648 到 2147483648)
# 默认的表单输入工具是TextInput

FloatField

class FloatField([**options])

# 浮点数
# max_digits 总位数(不包括小数点和符号)
# decimal_places 小数位数
# 举例, 要保存最大值为 999 (小数点后保存2位),你要这样定义字段:
# models.FloatField(..., max_digits=5, decimal_places=2)

AutoField

class AutoField(**options)

# 根据实际 ID 自动增长的 IntegerField
# 添加记录时它会自动增长,你通常不需要直接使用这个字段
# 自定义一个主键:my_id=models.AutoField(primary_key=True),如果你不指定主键的话,系统会自动添加一个主键字段到你的 model。

BooleanField

class BooleanField(**options)

# true/false
# 此字段的默认表单挂件是一个 CheckboxInput,如果你需要设置 null 值,则使用 NullBooleanField 来代替 BooleanField。如果Field.default没有指定的话, BooleanField 的默认值是 None。

TextField

class TextField([**options])

# 大文本字段
# 该模型默认的表单组件是 Textarea

EmailField

class EmailField([max_length=254, **options])

# 带有检查 Email 合法性的 CharField
# 它使用 EmailValidator 来验证输入合法性

DateField

class DateField([auto_now=False, auto_now_add=False, **options])

# 日期字段
# Argument 描述
# auto_now 当对象被保存时,自动将该字段的值设置为当前时间,通常用于表示 "last-modified" 时间戳。
# auto_now_add 当对象首次被创建时,自动将该字段的值设置为当前时间,通常用于表示对象创建时间。


DateTimeField

class DateTimeField([auto_now=False, auto_now_add=False, **options])

# 日期时间字段
# 类似 DateField 支持同样的附加选项

ImageField

class ImageField([upload_to=None, height_field=None, width_field=None, max_length=100, **options])

# 类似 FileField, 不过要校验上传对象是否是一个合法图片
# 它有两个可选参数:height_field 和 width_field,如果提供这两个参数,则图片将按提供的高度和宽度规格保存 。

FileField

class FileField([upload_to=None, max_length=100, **options])

# 上传文件的字段
# 字段不支持 primary_key 和 unique 参数,如果使用会生成 TypeError 错误,在旧版本 Django 中,upload_to 属性是必须的。

URLField

class URLField([max_length=200, **options])

# CharField 类型的 URL
# 若 verify_exists 参数为 True (默认), 给定的 URL 会预先检查是否存在( 即URL是否被有效装入且没有返回404响应)。

SlugField

class SlugField([max_length=50, **options])

# 短标题
# 一个 slug 只能包含字母、数字、下划线或者是连字符,通常用来作为短标签,通常它们是用来放在URL里的。与 CharField 类似, 你可以指定max_length 的值,如果没有指定 max_length, Django 将会默认长度为 50。

FilePathField

class FilePathField(path=None[, match=None, recursive=False, max_length=100, **options])

# 一个 CharField ,内容只限于文件系统内特定目录下的文件名
# 参数, 其中第一个是必需的:
# path 必填。这个 FilePathField 应该得到其选择的目录的绝对文件系统路径。例如: "/home/images"
# match 可选,match 只匹配基本文件名(base filename), 而不是整个文件路径(full path)
# recursive 可选,True/False,默认 False
# allow_files 可选,True/False,默认 False
# allow_folders 可选,True/False,默认 False

GenericIPAddressField

class GenericIPAddressField([protocol=both, unpack_ipv4=False, **options])

# IPv4 或 IPv6 地址, 字符串格式 (例如 192.0.2.30 或 2a02:42fe::4)
# 默认表单小部件是一个 TextInput

CommaSeparatedIntegerField

class CommaSeparatedIntegerField(max_length=None[, **options])

# 逗号分隔的整数字段
# 像 CharField 一样,需要一个 max_length 参数,同时数据库移植时也需要注意

BigIntegerField

class BigIntegerField([**options])

# 64 位整数
# 类似于一个 IntegerField,它的值的范围是 -9223372036854775808 到9223372036854775807 之间, 这个字段默认的表单组件是一个 TextInput

BinaryField

class BinaryField([**options])

# 存储原始二进制码
# 只支持 bytes 赋值,注意这个 Field 只有很有限的功能

PositiveIntegerField

class PositiveIntegerField([**options])

# 类似 IntegerField, 但值必须是正数或者零(0)

UUIDField

class UUIDField([**options])

# 存储 UUID
# 使用 Python 的 UUID 类。当使用 PostgreSQL 数据库时,该字段类型对应的数据库中的数据类型是 uuid,使用其他数据库时,数据库对应的是char(32) 类型。使用 UUID 类型相对于使用具有 primary_key 参数的AutoField 类型是一个更好的解决方案。 数据库不会自动生成 UUID,所以推荐使用 default 参数:
import uuid
from django.db import models
class MyUUIDModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)

看了该文章的用户还看了

django RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods
django RuntimeError: 'cryptography' package is req

出现错误:RuntimeError: 'cryptography' package is required for sh

django (1045, "Access denied for user 'root'@'localhost' (using password:password: YES/NO)")
django (1045, "Access denied for user 'root'@'loca

在django的根目录下运行程序 python manage.py runserer或者运行python3 manage

django (2003, "Can't connect to MySQL server on 'localhost' ([Errno 61] Connection refused)
django (2003, "Can't connect to MySQL server on 'l

逐一排查问题,出现2003, "Can't connect to MySQL server on 'localhost'

Django生成数据库表时报(__init__() missing 1 required positional argument: 'on_delete')
Django生成数据库表时报(__init__() missing 1 required posit

在django2.0后,定义外键和一对一关系的时候需要加on_delete选项,此参数为了避免两个表里的数据不一致问题,

在django admin中修改字段中文名的两种方式
在django admin中修改字段中文名的两种方式

使用django admin显示列表的时候默认会显示字段的名字,一般为英文,我们最好在定义的时候就将英文修改为自定义中文

Django如何把数据库里的html格式输出到前端
Django如何把数据库里的html格式输出到前端

只需在HTML页面中加入{% autoescape off %}即可!

django中autoescape标签使用详解
django中autoescape标签使用详解

DTL(Django Template Language)模板中默认已经开启了自动转义,会将那些特殊字符串进行转义

Django报错HTTP status code must be an integer.
Django报错HTTP status code must be an integer.

刚刚出现这个问题,还以为是表单提交或者什么网络错误,改了render就正常了

django模型如何删除数据
django模型如何删除数据

django模型也包含增删改查,那么django模型如何删除数据呢,下面我们一起看看

django自定义404页面有什么用
django自定义404页面有什么用

django自定义404页面有什么用呢,当网站改版时,ULR经常会出现变动

发表高见 (请对您的言行负责)
2021年11月06日 01:16,回答 by_淘气宝宝:
收藏了,这么多模型属性确实记不住
2021年11月06日 01:45,回答 by_淘气宝宝:
django模型跟表单的type一一对应,很有意思
©芃睿知识网 版权所有2021-2022 www.shsongjiang.com