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中range和xrange的区别
Dec 20 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
pycharm配置pyqt5-tools开发环境的方法步骤
Feb 11 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python3在同一行内输入n个数并用列表保存的例子
Jul 20 Python
基于django传递数据到后端的例子
Aug 16 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
flask利用flask-wtf验证上传的文件的方法
Jan 17 Python
python实现图片横向和纵向拼接
Mar 05 Python
Python配置pip国内镜像源的实现
Aug 20 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
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
php精度计算的问题解析
2019/06/21 PHP
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
jQuery插件datalist实现很好看的input下拉列表
2015/07/14 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
很棒的js Tab选项卡切换效果
2016/08/30 Javascript
在 Node.js 中使用原生 ES 模块方法解析
2017/09/19 Javascript
node内置调试方法总结
2018/02/22 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
Vue实现动态创建和删除数据的方法
2018/03/17 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
详解如何使用nvm管理Node.js多版本
2019/05/06 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
详解Python中的join()函数的用法
2015/04/07 Python
python关键字and和or用法实例
2015/05/28 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
Python插件virtualenv搭建虚拟环境
2017/11/20 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
Linux常见面试题
2013/03/18 面试题
行政助理工作职责范本
2014/03/04 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
高考寄语大全
2014/04/08 职场文书
2014年秋季开学寄语
2014/08/02 职场文书
企业党员个人自我评价
2014/09/20 职场文书
房屋授权委托书范本
2014/10/07 职场文书
自我推荐信怎么写
2015/03/24 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Java详细解析==和equals的区别
2022/04/07 Java/Android