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 相关文章推荐
wxPython使用系统剪切板的方法
Jun 16 Python
用pickle存储Python的原生对象方法
Apr 28 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
Python 点击指定位置验证码破解的实现代码
Sep 11 Python
20行Python代码实现视频字符化功能
Apr 13 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Softmax函数原理及Python实现过程解析
May 22 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
彻底搞懂python 迭代器和生成器
Sep 07 Python
python如何实时获取tcpdump输出
Sep 16 Python
Python 线程池模块之多线程操作代码
May 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
apache配置虚拟主机的方法详解
2013/06/17 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
php上传图片生成缩略图(GD库)
2016/01/06 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
Jquery实现图片左右自动滚动示例
2013/09/25 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
深入浅析ng-bootstrap 组件集中 tabset 组件的实现分析
2019/07/19 Javascript
微信小程序动画组件使用解析,类似vue,且更强大
2019/08/01 Javascript
通过实例解析js可枚举属性与不可枚举属性
2020/12/02 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
修改Python的pyxmpp2中的主循环使其提高性能
2015/04/24 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
2020/02/09 Python
Python中文分词库jieba,pkusegwg性能准确度比较
2020/02/11 Python
Django之choices选项和富文本编辑器的使用详解
2020/04/01 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
JAVA中运算符的分类及举例
2015/09/12 面试题
设置器与访问器的定义以及各自特点
2016/01/08 面试题
工厂仓管员岗位职责
2014/01/01 职场文书
语文教学随笔感言
2014/02/18 职场文书
小学生爱国演讲稿
2014/04/25 职场文书
食堂标语大全
2014/06/11 职场文书
商场营业员岗位职责
2015/04/14 职场文书
放假通知范文
2015/04/14 职场文书
子女赡养老人协议书
2016/03/23 职场文书
Nginx配置https原理及实现过程详解
2021/03/31 Servers