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进阶教程之动态类型详解
Aug 30 Python
Python实现一个简单的MySQL类
Jan 07 Python
Python os模块学习笔记
Jun 21 Python
Python操作Redis之设置key的过期时间实例代码
Jan 25 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
如何基于Python实现数字类型转换
Feb 07 Python
Pytest mark使用实例及原理解析
Feb 22 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
Python趣味实战之手把手教你实现举牌小人生成器
Jun 07 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
虫族 ZERG 概述
2020/03/14 星际争霸
PHP四舍五入、取整、round函数使用示例
2015/02/06 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
tp5.1 框架join方法用法实例分析
2020/05/26 PHP
Javascript中的this绑定介绍
2011/09/22 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
jquery parent和parents的区别分析
2013/10/02 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
jquery制作弹窗提示窗口代码分享
2014/03/02 Javascript
Javascript基础知识(三)BOM,DOM总结
2014/09/29 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
Jquery插件实现点击获取验证码后60秒内禁止重新获取
2015/03/13 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
js实现左侧网页tab滑动门效果代码
2015/09/06 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
js拼接html字符串的注意事项
2016/10/13 Javascript
js实现简单的手风琴效果
2017/02/27 Javascript
老生常谈jacascript DOM节点获取
2017/04/17 Javascript
详解AngularJS1.6版本中ui-router路由中/#!/的解决方法
2017/05/22 Javascript
Javascript继承机制详解
2017/05/30 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
JavaScript碎片—函数闭包(模拟面向对象)
2019/03/13 Javascript
[00:13]天涯墨客二技能展示
2018/08/25 DOTA
解决python通过cx_Oracle模块连接Oracle乱码的问题
2018/10/18 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
使用Python实现企业微信的自动打卡功能
2019/04/30 Python
Python3实现定时任务的四种方式
2019/06/03 Python
全民健身日活动方案
2014/01/29 职场文书
工程采购员岗位职责
2014/03/09 职场文书
学生偷窃检讨书
2014/09/25 职场文书
创业计划书之宠物店
2019/09/19 职场文书
MYSQL(电话号码,身份证)数据脱敏的实现
2021/05/28 MySQL
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript