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处理json数据中的中文
Mar 06 Python
使用python实现rsa算法代码
Feb 17 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
Python Grid使用和布局详解
Jun 30 Python
3分钟学会一个Python小技巧
Nov 23 Python
python实现多层感知器MLP(基于双月数据集)
Jan 18 Python
Python-ElasticSearch搜索查询的讲解
Feb 25 Python
python 绘制场景热力图的示例
Sep 23 Python
python分分钟绘制精美地图海报
Feb 15 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
层叠菜单的动态生成
2006/10/09 PHP
PHP遍历二维数组的代码
2011/04/22 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
PHP搭建大文件切割分块上传功能示例
2017/01/04 PHP
JavaScript实用技巧(一)
2010/08/16 Javascript
append和appendTo的区别以及appendChild用法
2013/12/24 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
BootStrap表单控件之文本域textarea
2017/05/23 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
如何手动实现一个 JavaScript 模块执行器
2020/10/16 Javascript
[01:03]PWL开团时刻DAY6——别打我
2020/11/05 DOTA
Python文件读取的3种方法及路径转义
2015/06/21 Python
Python实现采用进度条实时显示处理进度的方法
2017/12/19 Python
python列表的增删改查实例代码
2018/01/30 Python
pandas数值计算与排序方法
2018/04/12 Python
Python3使用TCP编写一个简易的文件下载器功能
2019/05/08 Python
Python代理IP爬虫的新手使用教程
2019/09/05 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
django的模型类管理器——数据库操作的封装详解
2020/04/01 Python
python中的错误如何查看
2020/07/08 Python
深入浅析CSS3中的Flex布局整理
2020/04/27 HTML / CSS
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
欧洲领先的技术商店:eibmarkt.com
2019/05/10 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
银行实习人员自我鉴定
2013/09/22 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
优秀教师获奖感言
2014/01/31 职场文书
班长自荐书范文
2014/02/11 职场文书
医院学雷锋活动策划方案
2014/02/15 职场文书
财务会计大学生自我评价
2014/04/09 职场文书
教师批评与自我批评
2014/10/15 职场文书