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 相关文章推荐
在Python3中使用asyncio库进行快速数据抓取的教程
Apr 02 Python
在Python的Django框架中获取单个对象数据的简单方法
Jul 17 Python
python中关于for循环的碎碎念
Jun 30 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
详解Django中类视图使用装饰器的方式
Aug 12 Python
在PyCharm下使用 ipython 交互式编程的方法
Jan 17 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
Python字典的概念及常见应用实例详解
Oct 30 Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 Python
python标准库OS模块函数列表与实例全解
Mar 10 Python
Python闭包与装饰器原理及实例解析
Apr 30 Python
python爬虫利用代理池更换IP的方法步骤
Feb 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利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
PHP开发中常见的安全问题详解和解决方法(如Sql注入、CSRF、Xss、CC等)
2014/04/21 PHP
PHP之预定义接口详解
2015/07/29 PHP
CodeIgniter表单验证方法实例详解
2016/03/03 PHP
PHP使用反射机制实现查找类和方法的所在位置
2016/04/22 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
浅谈jquery设置和获得checkbox选中的问题
2016/08/19 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
2016/11/24 Javascript
AJAX和jQuery动态加载数据的实现方法
2016/12/05 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
微信小程序实现底部导航
2018/11/05 Javascript
Python正则表达式匹配ip地址实例
2014/10/09 Python
分享一个常用的Python模拟登陆类
2015/03/29 Python
python简单实现旋转图片的方法
2015/05/30 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Django打印出在数据库中执行的语句问题
2019/07/25 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
2021/01/06 Python
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
英国和国际包裹递送:ParcelCompare
2019/08/26 全球购物
两道JAVA笔试题
2016/09/14 面试题
出国留学自荐信
2013/10/25 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
高一政治教学反思
2014/01/28 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
教师批评与自我批评范文
2014/10/15 职场文书
大学毕业生个人总结
2015/02/28 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
大学副班长竞选稿
2015/11/21 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js