Django models 常用数据类型
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)
参考文章:
1. https://www.cnblogs.com/laoguiaabb/p/8182906.html
2. https://my.oschina.net/liuyuantao/blog/751343
Django models 常用数据类型的更多相关文章
- Django Models的数据类型汇总
https://blog.csdn.net/devil_2009/article/details/41735611 Django Models的数据类型 汇总 AutoField IntegerFie ...
- Django Models的数据类型
Django中的页面管理后台 Djano中自带admin后台管理模块,可以通过web页面去管理,有点想php-admin,使用步骤: 在项目中models.py 中创建数据库表 class useri ...
- Django models 常用字段类型
1.CharField字符串字段,存较短的字符串,长文本要用TextField.必须的参数:max_length 字符的最大长度2.TextField容量很大的文本字段.admin中用 <tex ...
- django Models 常用的字段和参数
1.字段 CharField IntegerField floatField DateTimeField DateField DecimalField 2.参数 null default choice ...
- django models数据类型
Django Models的数据类型 AutoField IntegerField BooleanField true/false CharField maxlength,必填 TextField C ...
- django 框架模型之models常用的Field
1. django 模型models 常用字段 1.models.AutoField 自增列 = int(11) 如果没有的话,默认会生成一个名称为 id 的列 如果要显式的自定义一 ...
- Django ORM 常用字段和参数
Django ORM 常用字段和参数 一:常用字段 AutoField int自增列,必须填入参数 primary_key=True.当model中如果没有自增列,则自动会创建一个列名为id的列. I ...
- Django - models.py 应用
Django - models.py 应用 编写 models.py 文件 from django.db import models # Create your models here. class ...
- Django(ORM常用字段)
day68 参考:http://www.cnblogs.com/liwenzhou/p/8688919.html 1. Django ORM常用字段: 1. AutoField ...
随机推荐
- python基础之Day6
一.元组 定义:t=(1,2,3,4) 总结:存多个值,值为任意类型 只有读的需求,没有改的需求 有序,不可变(元组里每个值对应的索引内存地址不能变) 在元素个数相同的情况下,元组比列表更节省空间 二 ...
- unable to bind listening socket for address '127.0.0.1:9090': Address already in use (98)
unable to bind listening socket for address '127.0.0.1:9090': Address already in use (98) php-fpm 启动 ...
- 如何将JetBrains IDE 光标由块变为 |
1 设置中确认未勾选 2 安装了IdeaVim 插件,将其改为未选中状态,或者 ⌥ + ⌘ + v 将其关闭
- SQLite3命令操作大全
SQLite3命令操作大全 SQLite库包含一个名字叫做sqlite3的命令行,它可以让用户手工输入并执行面向SQLite数据库的SQL命令.本文档提供一个样使用sqlite3的简要说明. 一.ql ...
- web集成高德地图
1.使用高德地图API需到官网添加一个Key,http://lbs.amap.com/dev/key/app 2.页面头引入 <div id="addressMap"> ...
- Python12/10--前端之display/overflow使用/清浮动的方式
display: 1.inline 同行显示,当一行显示不下.多余的就会换行显示, 不支持的css样式:不支持宽高,不支持行高(行高会映射给父级) 不支持margin上下,content由 文本内容撑 ...
- ABP框架系列之十九:(Debugging-调试)
While it's not generally needed, you may want to step into ABP's source code while you debugging you ...
- IntelliJ IDEA 2017版 spring-boot2.0.2 搭建 JPA springboot DataSource JPA sort排序方法使用方式, 添加关联表的 order by
1.sort可以直接添加在命名格式的字段中 List<BomMain> findAllByDeleted(Integer deleted, Sort sort); 2.可以作为pageab ...
- 高效率php注意事项
1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍. 当然了,这个测试方法需要在十万级以上次执行,效果才明显. 其实静态方法和非静态方法的 ...
- ASP.NET MVC下使用AngularJs语言(四):$window.alert
判断文本框是否有填写,没有填写使用angularjs的$window.alert来提示用户. 创建一个ASP.NET MVC控制器: 接下来是准备一个angularjs的控制器: pilotApp.c ...