当前位置: 首页 > news >正文

Django 模型基础(五)

一、models常用字段类型

(一 )  索引,字符,数字

1、models.AutoField  
          自增列   如果没有,默认会生成一个名称为 id 的列,
          如果要显示的自定义一个自增列,必须将给列设置为主键 primary_key=True。

     #uid 主键,原来的id不会创建uid=models.AutoField(auto_created=True,primary_key=True)

2、models.CharField  字段  单行输入,用于较短的字符串,如要保存大量文本, 使用 TextField。
           必须 max_length 参数,django会根据这个参数在数据库层和校验层限制该字段所允许的最大字符数。

     #CharField 字符串类型,max_length字符长度, unique是否唯一,db_index索引name=models.CharField(max_length=20,unique=True,db_index=True)

3、models.TextField  
           字符串 ,一个容量很大的文本字段

     #TextField 大文本 长字符类型,null=True是否为空,blank=True后台Admin管理页面可以为空info=models.TextField(null=True,blank=True)

4、models.IntegerField  
           整数类型

     # IntegerField 整数类型,default 默认值age=models.IntegerField(default=19)

 5、models.PositiveIntegerField  
           类似 IntegerField, 但取值范围为非负整数(允许0值,可以理解为无符号整数)

  #非负数num=models.PositiveIntegerField()

6、models.FloatField  
          浮点类型 = double   浮点型字段。 必须提供两个 参数:
                  max_digits:总位数(不包括小数点和符号)  
                  decimal_places:小数位数。 

     # FloatField 小数类型salary=models.FloatField(default=10000.68)

7、models.DecimalField

      十进制浮点数 ,参数

           .max_digits. 位数总数 

           .decimal_places小数点后的数字位数

  #DecimalField 十进制数,max_digits 总位数(不包括小数点和符号), decimal_places小数位数 ,default默认值
money=models.DecimalField(max_digits=5,decimal_places=2,default=100.35)

 (二)日期时间,文件

1、models.DateField  
          日期类型 YYYY-MM-DD   参数:
                auto_now = True 则每次更新都会更新这个时间;
                auto_now_add =True 则只是第一次创建添加,之后的更新不再改变

     # DateField 日期类型birthday=models.DateField(default='2023-11-30')

2、models.DateTimeField  
           日期类型 YYYY-MM-DD hh:mm:ss   同DateField的参数

# DateTimeField 每一次修改后自动该时间为最新时间auto_nowbirthday=models.DateTimeField(auto_now=True)

3、models.TimeField
          日期类型 hh:mm:ss   同DateField的参数

# TimeField每一次修改后自动该时间为最新时间auto_nowtime=models.TimeField(auto_now=True)

4、models.FileField
          文件上传字段。 一个必须参数:
                 upload_to : 一个用于保存上传文件的本地文件系统路径。
                 由于性能需求文件不会被直接存储到数据库中
                 非必需参数 storage  用来设定文件存储仓库

     #FileField 文件和图片icon=models.FileField(null=True,upload_to='static/uploads')

5、models.ImageField
          图像文件上传字段,继承了models.FileField,可以通过 upload_to 指定上传路径
          height_field,width_field 如果提供这两个参数,则图片将按提供的高度和宽度规格保存。 

     #ImageField 只能上传图片icon1=models.ImageField(null=True,upload_to='static/uploads')

(三)  布尔,其他特殊类型

1、models.BooleanField   布尔类型=tinyint(1)   不能为空,Blank=True

     #BooleanField 布尔类型sex=models.BooleanField(default=True)

注意:models.NullBooleanField:类似 BooleanField, 不过允许 NULL 作为其中一个选项。

          models.IPAddressField   字符串类型(ip4正则表达式)   一个字符串形式的 IP 地址)

在Django4的版本已经不在使用了。

# (fields.E903) NullBooleanField is removed except for support in historical migrations.
#  HINT: Use BooleanField(null=True) instead.
# sex=models.NullBooleanField()sex=models.BooleanField(null=True)
#  (fields.E900) IPAddressField has been removed except for support in historical migrations.
#    HINT: Use GenericIPAddressField instead.
# ip=models.IPAddressField()ip=models.GenericIPAddressField(null=True)     

相关文章:

  • 奇迹mu 架设过程中可能会出现的问题及解决办法
  • Excel 数据处理记录
  • LeetCode 1038. 从二叉搜索树到更大和树:(反)中序遍历
  • C语言面试之旅:掌握基础,探索深度(面试实战之c语言关键词中篇)
  • 软件分享--智能照片识别分类软件
  • 【Java进阶】-- 设计模式
  • 572 - Oil Deposits (UVA)
  • Linux下设置redis临时密码和长期密码
  • python用YOLOv8对图片进行分类
  • springboot统一异常处理
  • Hana Studio打开BW失败
  • 基于Springboot的秒杀系统(有报告)。Javaee项目,springboot项目。
  • git常用命令小记
  • 软件工程导论学习资料
  • Web前端JS如何获取 Video/Audio 视音频声道(左右声道|多声道)、视音频轨道、音频流数据
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【笔记】你不知道的JS读书笔记——Promise
  • Angular Elements 及其运作原理
  • django开发-定时任务的使用
  • JavaScript 是如何工作的:WebRTC 和对等网络的机制!
  • Java反射-动态类加载和重新加载
  • Mac转Windows的拯救指南
  • Magento 1.x 中文订单打印乱码
  • Making An Indicator With Pure CSS
  • Node 版本管理
  • npx命令介绍
  • react-native 安卓真机环境搭建
  • SpiderData 2019年2月13日 DApp数据排行榜
  • vue脚手架vue-cli
  • 关于字符编码你应该知道的事情
  • 回流、重绘及其优化
  • 记一次删除Git记录中的大文件的过程
  • 试着探索高并发下的系统架构面貌
  • 微信公众号开发小记——5.python微信红包
  • 我这样减少了26.5M Java内存!
  • 一、python与pycharm的安装
  • nb
  • #etcd#安装时出错
  • #微信小程序:微信小程序常见的配置传旨
  • #我与Java虚拟机的故事#连载17:我的Java技术水平有了一个本质的提升
  • (1)Nginx简介和安装教程
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (2022 CVPR) Unbiased Teacher v2
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (力扣)1314.矩阵区域和
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net MySql
  • .Net 代码性能 - (1)
  • .NET 使用 JustAssembly 比较两个不同版本程序集的 API 变化
  • .ui文件相关