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判断windows隐藏文件的方法
Mar 21 Python
Python实现的摇骰子猜大小功能小游戏示例
Dec 18 Python
python实现用户管理系统
Jan 10 Python
使用Python微信库itchat获得好友和群组已撤回的消息
Jun 24 Python
Python脚本按照当前日期创建多级目录
Mar 01 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
python中数组和矩阵乘法及使用总结(推荐)
May 18 Python
Python QQBot库的QQ聊天机器人
Jun 19 Python
python3安装crypto出错及解决方法
Jul 30 Python
django创建最简单HTML页面跳转方法
Aug 16 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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
模仿OSO的论坛(四)
2006/10/09 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
destoon数据库表说明汇总
2014/07/15 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
几个javascript操作word的参考代码
2009/10/26 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
JavaScript类和继承 this属性使用说明
2010/09/03 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
详解Vue CLI3 多页应用实践和源码设计
2018/08/30 Javascript
vue 父组件中调用子组件函数的方法
2019/06/06 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
2020/11/05 Javascript
Python实现查看系统启动项功能示例
2018/05/10 Python
Python实现迭代时使用索引的方法示例
2018/06/05 Python
Python3.6使用tesseract-ocr的正确方法
2018/10/17 Python
python用插值法绘制平滑曲线
2021/02/19 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
python的命名规则知识点总结
2019/10/04 Python
python实现计算器功能
2019/10/31 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
英国最大的汽车交易网站:Auto Trader UK
2016/09/23 全球购物
DVF官方网站:美国时装界尊尚品牌
2017/08/29 全球购物
美国第二大连锁药店:Rite Aid
2019/04/03 全球购物
一套中级Java程序员笔试题
2015/01/14 面试题
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
班主任师德师风自我剖析材料
2014/10/02 职场文书
合伙经营协议书范本(通用版)
2014/12/03 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
2016年优秀少先队员事迹材料
2016/02/26 职场文书
Python深度学习之Pytorch初步使用
2021/05/20 Python
Python中的嵌套循环详情
2022/03/23 Python