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 09 Python
线程和进程的区别及Python代码实例
Feb 04 Python
详解python3中socket套接字的编码问题解决
Jul 01 Python
一百多行python代码实现抢票助手
Sep 25 Python
使用python opencv对目录下图片进行去重的方法
Jan 12 Python
python制作抖音代码舞
Apr 07 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
python实现图片横向和纵向拼接
Mar 05 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
python实现AdaBoost算法的示例
Oct 03 Python
Python try except finally资源回收的实现
Jan 25 Python
Python+Appium实现自动抢微信红包
May 21 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快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
微信开发之网页授权获取用户信息(二)
2016/01/08 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
thinkphp框架使用JWTtoken的方法详解
2019/10/10 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
Javascript开发包大全整理
2006/12/22 Javascript
基于JQuery的Pager分页器实现代码
2010/07/17 Javascript
Jquery 动态生成表格示例代码
2013/12/24 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
基于bootstrap的选择框插件icheck
2016/12/23 Javascript
jQuery模拟爆炸倒计时功能实例代码
2017/08/21 jQuery
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
vue自定义标签和单页面多路由的实现代码
2020/05/03 Javascript
[03:51]吞吞映像 每周精彩击杀top10第二弹
2014/06/25 DOTA
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
python执行等待程序直到第二天零点的方法
2015/04/23 Python
使用python编写udp协议的ping程序方法
2018/04/22 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
在django模板中实现超链接配置
2019/08/21 Python
Python修改列表值问题解决方案
2020/03/06 Python
详解用Pytest+Allure生成漂亮的HTML图形化测试报告
2020/03/31 Python
关于matplotlib-legend 位置属性 loc 使用说明
2020/05/16 Python
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
递归计算如下递归函数的值(斐波拉契)
2012/02/04 面试题
机电一体化专业应届生求职信
2013/11/27 职场文书
学生自我鉴定
2013/12/18 职场文书
珍珠奶茶店创业计划书
2014/01/11 职场文书
成语的广告词
2014/03/19 职场文书
2015元旦主持词开场白和结束语
2014/12/14 职场文书
车间质检员岗位职责
2015/04/08 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
2019入党申请书格式
2019/06/25 职场文书