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虚拟环境Virtualenv使用教程
May 18 Python
python 3调用百度OCR API实现剪贴板文字识别
Sep 04 Python
Python3中关于cookie的创建与保存
Oct 21 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
python安装gdal的两种方法
Oct 29 Python
wxPython实现整点报时
Nov 18 Python
Python编程快速上手——疯狂填词程序实现方法分析
Feb 29 Python
Python新手学习函数默认参数设置
Jun 03 Python
浅谈Python3中print函数的换行
Aug 05 Python
python实现银行账户系统
Feb 22 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 array 的加法操作代码
2010/07/24 PHP
PHP学习之数组值的操作
2011/04/17 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
PHP快速排序quicksort实例详解
2016/09/28 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
PHP 文件上传限制问题
2019/09/01 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
zepto与jquery的区别及zepto的不同使用8条小结
2016/07/28 Javascript
浅谈jquery上下滑动的注意事项
2016/10/13 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
Vue 创建组件的两种方法小结(必看)
2018/02/23 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
2019/05/12 Javascript
微信小程序实现原生步骤条
2019/07/25 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
2019/08/26 Javascript
[01:32]2014DOTA2西雅图邀请赛 CIS我们有信心进入正赛
2014/07/08 DOTA
在Python的Flask框架中实现全文搜索功能
2015/04/20 Python
利用Python脚本生成sitemap.xml的实现方法
2017/01/31 Python
Python 正则表达式实现计算器功能
2017/04/29 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Tesserocr库的正确安装方式
2018/10/19 Python
python+os根据文件名自动生成文本
2019/03/21 Python
PyQt5基本控件使用之消息弹出、用户输入、文件对话框的使用方法
2019/08/06 Python
Python实现自动访问网页的例子
2020/02/21 Python
Python发送手机动态验证码代码实例
2020/02/28 Python
Python callable内置函数原理解析
2020/03/05 Python
基于Modernizr 让网站进行优雅降级的分析
2013/04/21 HTML / CSS
教师党员个人自我剖析材料
2014/09/29 职场文书
2014统计局民主生活会对照检查材料思想汇报
2014/10/02 职场文书
2014年信用社工作总结
2014/11/25 职场文书
大学团日活动总结书
2015/05/11 职场文书
初一语文教学反思
2016/03/03 职场文书
nginx作grpc的反向代理踩坑总结
2021/07/07 Servers