Django ORM 常用字段与不常用字段汇总

 更新时间:2019年08月09日 14:33:58   作者:Sch01aR#  
这篇文章主要介绍了Django ORM 常用字段与不常用字段汇总,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

常用字段

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

去数据库中看一下

添加数据

只添加 name、age 字段

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,上传图片的宽度保存的数据库字段名(字符串)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • python3射线法判断点是否在多边形内

    python3射线法判断点是否在多边形内

    这篇文章主要为大家详细介绍了python3射线法判断点是否在多边形内,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Python集合set的交集和并集操作方法

    Python集合set的交集和并集操作方法

    这篇文章主要介绍了Python集合set的交集和并集操作方法小,python的set,是一个无序不重复元素集, 基本功能包括关系测试和消除重复元素本文讲述了python中set集合的比较方法包括交集,并集,差集,下文更多详细资料,需要的小伙伴可以参考一下
    2022-03-03
  • 一篇文章弄懂Python中的内建函数

    一篇文章弄懂Python中的内建函数

    Python学习,内建函数是你必须要掌握的一部分,下面这篇文章主要给大家介绍了关于Python中内建函数的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2021-08-08
  • Python基础语法(Python基础知识点)

    Python基础语法(Python基础知识点)

    这篇文章主要介绍了Python基础语法(Python基础知识点),需要的朋友可以参考下
    2016-02-02
  • pyinstaller参数介绍以及总结详解

    pyinstaller参数介绍以及总结详解

    这篇文章主要介绍了pyinstaller参数介绍以及总结详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • 使用python对文件中的数值进行累加的实例

    使用python对文件中的数值进行累加的实例

    今天小编就为大家分享一篇使用python对文件中的数值进行累加的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 使用PyTorch实现MNIST手写体识别代码

    使用PyTorch实现MNIST手写体识别代码

    今天小编就为大家分享一篇使用PyTorch实现MNIST手写体识别代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • 浅析Python的对象拷贝和内存布局

    浅析Python的对象拷贝和内存布局

    这篇文章主要为大家详细介绍了Python中的对象拷贝和内存布局的相关知识,文中的示例代码讲解详细,对我们学习Python有一定的帮助,需要的可以参考一下
    2022-12-12
  • Python制作简易计算器功能

    Python制作简易计算器功能

    这篇文章主要为大家详细介绍了Python制作简易计算器功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • 基于Python的数据分析与可视化

    基于Python的数据分析与可视化

    在当今数字化时代,数据分析和可视化已经成为了企业和个人必备的技能,Python 作为一种高级编程语言,具有易学易用、高效快捷的特点,在数据科学领域中得到了广泛应用,本篇文章将介绍基于 Python 的数据分析与可视化
    2023-07-07

最新评论