Django ORM 常用字段与不常用字段汇总


Posted in Python onAugust 09, 2019

常用字段

AutoField:

int 自增列,必须填入参数 primary_key=True

如果没有写 AutoField,则会自动创建一个列名为 id 的列

from django.db import models
 class Person(models.Model):
  id = models.AutoField(primary_key=True)  # 自增的 id 主键

CharField:

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

from django.db import models 
class Person(models.Model):
  id = models.AutoField(primary_key=True)  # 自增的 id 主键
  name = models.CharField(max_length=32)

IntegerField:

整数类型,范围在 -2147483648 到 2147483647

from django.db import models 
class Person(models.Model):
  id = models.AutoField(primary_key=True)  # 自增的 id 主键
  name = models.CharField(max_length=32)
  age = models.IntegerField()

DateField:

日期字段,日期格式 YYYY-MM-DD,相当于 Python 中的 datetime.date()

from django.db import models 
class Person(models.Model):
  id = models.AutoField(primary_key=True)  # 自增的 id 主键
  name = models.CharField(max_length=32)
  age = models.IntegerField()
  birthday = models.DateField(auto_now_add=True)

DatetimeField、DateField、TimeField 这三个时间字段,都可设置 auto_now_add、auto_now 属性

auto_now_add=True 的话,创建数据记录的时候会把当前时间赋给该字段

auto_now=True 的话,每次更新数据记录的时间会用来更新该字段

DateTimeField:

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

执行命令:

manage.py@mysite2 > makemigrations app01
manage.py@mysite2 > migrate app01

去数据库中看一下

Django ORM 常用字段与不常用字段汇总

添加数据

Django ORM 常用字段与不常用字段汇总

只添加 name、age 字段

Django ORM 常用字段与不常用字段汇总

DateField 是添加这条数据的日期

不常用字段

BigAutoField(AutoField):

bigint 自增列,必须填入参数 primary_key=True

如果没有写自增列,则会自动创建一个列名为 id 的列

SmallIntegerField(IntegerField):

短整型,-32768 到 32767

PositiveSmallIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):

正短整型,0 到 32767

IntegerField(Field):

有符号的整数列,-2147483648 到 2147483647

PositiveIntegerField(PositiveIntegerRelDbTypeMixin, IntegerField):

正整数,0 到 2147483647

BigIntegerField(IntegerField):

有符号的长整型,-9223372036854775808 到 9223372036854775807

BooleanField(Field):

布尔值类型

NullBooleanField(Field):

可以为空的布尔值

TextField(Field):

文本类型

EmailField(CharField):

字符串类型,Django Admin 以及 ModelForm 中提供验证机制

IPAddressField(Field):

字符串类型,Django Admin 以及 ModelForm 中提供验证 IPV4 机制

GenericIPAddressField(Field):

字符串类型,Django Admin 以及 ModelForm 中提供验证 Ipv4 和 Ipv6

参数:protocol,用于指定 Ipv4 或 Ipv6, 'both',"ipv4","ipv6";unpack_ipv4,如果指定为 True,则输入 ::ffff:192.0.2.1 的时候,可解析为 192.0.2.1,开启此功能,需要 protocol="both"

URLField(CharField):

字符串类型,Django Admin 以及 ModelForm 中提供验证 URL

SlugField(CharField):

字符串类型,Django Admin 以及 ModelForm 中提供验证支持 字母、数字、下划线、连接符(减号)

CommaSeparatedIntegerField(CharField):

字符串类型,格式必须为逗号分割的数字

UUIDField(Field):

字符串类型,Django Admin 以及 ModelForm 中提供对 UUID 格式的验证

TimeField(DateTimeCheckMixin, Field):

时间格式,HH:MM[:ss[.uuuuuu]]

DurationField(Field):

长整数,时间间隔,数据库中按照 bigint 存储,ORM 中获取的值为 datetime.timedelta 类型

FloatField(Field):

浮点型

DecimalField(Field):

10进制小数

参数:max_digits,小数总长度;decimal_places,小数位长度

BinaryField(Field):

二进制类型

FilePathField(Field):

字符串,Django Admin 以及 ModelForm 中提供读取文件夹下文件的功能

参数:path,文件夹路径;match=None,正则匹配;recursive=False,递归下面的文件夹;allow_files=True,允许文件;allow_folders=False,允许文件夹

FileField(Field):

字符串,路径保存在数据库,文件上传到指定目录

参数:upload_to="",上传文件的保存路径;storage=None,存储组件,默认 django.core.files.storage.FileSystemStorage

ImageField(FileField):

字符串,路径保存在数据库,文件上传到指定目录

参数:upload_to="",上传文件的保存路径;storage=None 存储组件,默认 django.core.files.storage.FileSystemStorage;width_field=None,上传图片的高度保存的数据库字段名(字符串);height_field=None,上传图片的宽度保存的数据库字段名(字符串)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Python的Django框架中创建和使用模版
Jul 15 Python
Python 使用PIL numpy 实现拼接图片的示例
May 08 Python
分享vim python缩进等一些配置
Jul 02 Python
python3使用QQ邮箱发送邮件
May 20 Python
在python中用print()输出多个格式化参数的方法
Jul 16 Python
python代码编写计算器小程序
Mar 30 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
python实现名片管理器的示例代码
Dec 17 Python
Keras 切换后端方式(Theano和TensorFlow)
Jun 19 Python
用Python爬取某乎手机APP数据
Jun 15 Python
python数字图像处理之图像的批量处理
Jun 28 Python
详解如何减少python内存的消耗
Aug 09 #Python
Django命名URL和反向解析URL实现解析
Aug 09 #Python
利用python list完成最简单的DB连接池方法
Aug 09 #Python
python使用requests.session模拟登录
Aug 09 #Python
如何在Cloud Studio上执行Python代码?
Aug 09 #Python
python切片(获取一个子列表(数组))详解
Aug 09 #Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 #Python
You might like
PHP 5.3新特性命名空间规则解析及高级功能
2010/03/11 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
jquery动态导航插件dynamicNav用法实例分析
2015/09/06 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
jQuery元素属性操作实例(设置、获取及删除元素属性)
2016/09/08 Javascript
JavaScript 继承详解(五)
2016/10/11 Javascript
在js里怎么实现Xcode里的callFuncN方法(详解)
2016/11/05 Javascript
JS 实现随机验证码功能
2017/02/15 Javascript
关于jquery form表单序列化的注意事项详解
2017/08/01 jQuery
微信小程序实现倒计时调用相机自动拍照功能
2018/06/10 Javascript
layui输入框只允许输入中文且判断长度的例子
2019/09/18 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
nestjs返回给前端数据格式的封装实现
2021/02/22 Javascript
详解js创建对象的几种方式和对象方法
2021/03/01 Javascript
Python使用time模块实现指定时间触发器示例
2017/05/18 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python pandas生成时间列表
2019/06/29 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
Python reversed反转序列并生成可迭代对象
2020/10/22 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
资产经营总监岗位职责
2013/12/04 职场文书
人力资源主管岗位职责
2014/01/29 职场文书
《学棋》教后反思
2014/04/14 职场文书
离婚协议书范本
2015/01/26 职场文书
二手车转让协议书
2015/01/29 职场文书
工作感想范文
2015/08/07 职场文书
apache ftpserver搭建ftp服务器
2022/05/20 Servers
vue递归实现树形组件
2022/07/15 Vue.js