一、🚀 ORM 新增数据魔法!

核心目标

教你用 Django ORM 给数据库 新增数据 !就像给数据库 “生小数据宝宝”👶

方法 1:实例化 Model + save(一步步喂数据)

obj = Feedback()  # 实例化
obj.quality = data['quality']  # 指定数据
obj.attitude = data['attitude']
obj.speed = data['speed']
obj.text = data['text']
obj.anonymous = data['anonymous']obj.save()  # 入库
1. obj = Feedback() → 造一个空数据盒子
  • Feedback 是模型类(模具),obj 是用模具做的 空数据模型 ~
  • 类比:用 “Feedback 模具” 捏一个空白小泥人,准备填数据~
2. obj.quality = data['quality'] → 给盒子填数据
  • 从 data 字典里,把 quality(商品质量)的值,塞给 obj 的 quality 字段~
  • 后面几行同理:依次填 attitude(客服态度)、speed(物流速度)、text(评论)、anonymous(是否匿名)~
  • 类比:给小泥人画眼睛、穿衣服、写名字… 每个属性都从 data 里选材料~
3. obj.save() → 把盒子存进数据库
  • 填完所有数据后,调用 save() 方法,Django 会把 obj 转换成 数据库的一条记录 ,永久保存!
  • 类比:把捏好、画好的小泥人,放进 “数据库展示柜” 里~

方法 2:类方法 create(一键批量填数据)

Feedback.objects.create(**data)
1. Feedback.objects → 模型的 “数据管家”
  • objects 是 Django 模型默认的 管理器 ,负责和数据库交互(增删查改)~
  • 类比:Feedback 模型的 “专属小管家”,帮你处理数据操作~
2. .create(**data) → 一键创建 + 保存
  • create 是管家提供的 “快捷魔法”:自动帮你 实例化模型 + 填数据 + 保存入库 !
  • **data 是把 data 字典 “拆包”,把里面的键值对(如 quality=5text="好评" )传给 create 方法~
  • 类比:告诉小管家 data 里的所有材料,它会自动用 “Feedback 模具” 捏好小泥人,直接放进展示柜!
3. 和方法 1 的区别
  • 方法 1 是 手动一步步填数据 ,适合需要 “填数据前做额外操作” 的场景(比如给某个字段加默认值、校验)。
  • 方法 2 是 一键批量操作 ,适合数据已经准备好,直接入库的场景,代码更简洁~

总结(小剧场对比)

方法 1 小剧场

你:管家!我要存一条反馈数据~
管家:好呀!先拿一个空盒子(Feedback() )~
你:给盒子填质量、态度、速度…(手动赋值)
你:填好啦!放进展示柜(save() )~

方法 2 小剧场

你:管家!我要存一条反馈数据,材料都在 data 里~
管家:收到!自动用模具捏好、填数据、放进展示柜(create(**data) )~

两种方法都能给数据库新增数据,根据场景选就行啦~ 方法 1 灵活可控,方法 2 快捷方便! 🎉
(比如需要校验数据、加默认值 → 选方法 1;数据直接能用 → 选方法 2~)

二、🎯 Django ORM 修改数据 

核心目标

教你用 Django ORM 给数据库 修改已有数据 !就像给数据库里的 “数据宝宝” 换衣服~ 👚

方法 1:修改实例对象(一步步改)

# 1. 获取数据
obj: Feedback = Feedback.objects.get(id=5)  # 获取ID=5的数据
print(f"{obj=}, {obj.text}")# 2. 修改字段
obj.text = "7777"# 3. 保存修改
obj.save()  # 重新入库
print(f"{obj=}, {obj.text}")

1. obj = Feedback.objects.get(id=5) → 找到要改的数据
  • Feedback.objects 是模型的 “数据管家”,get(id=5) 是让管家 找到 “ID=5” 的数据 ,赋值给 obj ~
  • 类比:你对管家说 “把展示柜里 ID=5 的小泥人拿出来”,管家找到后给你~

2. print(...) → 看看原来的数据
  • 打印 obj 和 obj.text ,看看修改前的数据长啥样~
  • 类比:拿到小泥人后,先看看它原来的衣服、装饰~

3. obj.text = "7777" → 给数据换 “新衣服”
  • 把 obj 的 text 字段改成 "7777" ,其他字段不变~
  • 类比:给小泥人换一件新衣服(只改 text ,其他装饰保留)~

4. obj.save() → 把修改后的数据放回数据库
  • 调用 save() ,Django 会把修改后的 obj 重新存回数据库,覆盖原来的数据~
  • 类比:给小泥人换好新衣服后,放回展示柜(数据库)~

5. 再 print(...) → 看看修改后的数据
  • 打印修改后的 obj 和 obj.text ,确认修改生效~
  • 类比:放回展示柜前,再检查一下小泥人的新衣服~

方法 2:调用类方法 update(批量改)

Feedback.objects.update(text="888")

1. Feedback.objects → 模型的 “数据管家”
  • 还是那个 “专属小管家”,负责和数据库交互~

2. .update(text="888") → 批量修改数据
  • update 是管家提供的 “批量魔法”: 把所有数据的 text 字段改成 "888" !
  • 注意:这会修改 所有数据 的 text 字段(如果想改指定数据,需要加过滤条件,比如 filter(id=5).update(...) )~
  • 类比:你对管家说 “把展示柜里所有小泥人的衣服都换成 text="888" 样式”,管家会批量操作!

3. 和方法 1 的区别
  • 方法 1 是 “先找到数据 → 修改 → 保存” ,适合改 单条数据 ,还能在修改前做额外操作(比如打印、校验)。
  • 方法 2 是 “直接批量改” ,适合改 多条数据 ,代码更简洁,但要注意过滤条件(否则会改全部)~

总结(小剧场对比)

方法 1 小剧场

你:管家!把 ID=5 的小泥人拿出来~
管家:好的!(get(id=5) )
你:给它换件新衣服 text="7777" ~
你:检查一下(print ),没问题!放回展示柜(save )~

方法 2 小剧场

你:管家!把所有小泥人的衣服都换成 text="888" ~
管家:收到!批量操作完成(update )~

两种方法都能修改数据,根据场景选就行啦~ 方法 1 适合改单条、需要校验的场景;方法 2 适合批量改、追求简洁的场景~ 🚀

(注意:方法 2 如果不加 filter ,会修改 所有数据 ,用的时候要小心哦!)

三、🕵️‍♀️ Django ORM 查询魔法 

核心目标

教你用 Django ORM 从数据库里 “捞数据” !不管是找单条、多条,还是带条件筛选,都能轻松拿捏~

“捞数据” 的基本姿势(获取对象)

1. 获取单个对象(精准定位)

obj: Feedback = Feedback.objects.get(id=5)  # 获取ID=5的数据
拆解:
  • Feedback.objects:模型的 “数据管家”,负责和数据库唠嗑~
  • .get(id=5):管家接到指令 → 去数据库找 “ID=5” 的那条数据 ,找到后包装成 Feedback 对象给你~
  • 类比:你对管家说 “把展示柜里 ID=5 的小泥人拿过来”,管家精准找到递给你~

⚠️ 注意:如果 get 没找到数据,会报错 DoesNotExist ;如果找到多条,会报错 MultipleObjectsReturned 。所以适合 确定只有一条数据 的场景~

2. 获取多个数据(批量捞)

① 获取全部数据
obj_list: list[Feedback] = Feedback.objects.all()  # 获取全部数据

  • .all():管家接到指令 → 把数据库里 所有 Feedback 数据 都捞出来,包装成列表给你~
  • 类比:你对管家说 “把展示柜里所有小泥人都拿过来”,管家抱来一整箱~

② 获取部分数据(带条件筛选)
obj_list: list[Feedback] = Feedback.objects.filter(id=5)  # 获取部分数据

  • .filter(id=5):管家接到指令 → 去数据库找 “ID=5” 的所有数据(虽然 ID 一般唯一,但语法支持找多个 ),包装成列表给你~
  • 类比:你对管家说 “把展示柜里 ID=5 的小泥人都拿过来”(如果有多个重名 ID ,就都抱来 )~
③ 获取指定范围数据
obj_list: list[Feedback] = Feedback.objects.all()[:100]  # 获取指定范围数据

  • .all()[:100]:先捞全部数据,再 切片取前 100 条 ~
  • 类比:你对管家说 “把展示柜里的小泥人都拿过来,我只看前 100 个”,管家抱来一箱,你自己挑前 100 个~

条件查询(精准筛选的魔法语法)

Django ORM 提供了超方便的 条件查询语法 ,用 __(双下划线)实现各种筛选!

条件语法例子(找 quality 字段)含义
等于=filter(quality=5)quality 等于 5
大于__gtfilter(quality__gt=3)quality 大于 3
大于等于__gtefilter(quality__gte=3)quality 大于等于 3
小于__ltfilter(quality__lt=3)quality 小于 3
小于等于__ltefilter(quality__lte=3)quality 小于等于 3
包含(在列表里)__infilter(quality__in=[1,3,5])quality 是 1、3、5 中的一个
不等于excludeexclude(quality=5)quality 不等于 5

举个栗子🌰

比如想找 “quality 大于 3” 的数据:

obj_list = Feedback.objects.filter(quality__gt=3)

  • 管家接到指令 → 去数据库找 quality 字段大于 3 的所有数据,返回列表~
  • 类比:你对管家说 “把展示柜里,商品质量评分大于 3 分的小泥人拿过来”,管家精准筛选后抱来~

再举个栗子🌰

想找 “quality 不等于 5” 的数据:

obj_list = Feedback.objects.exclude(quality=5)

  • exclude 是管家的 “反向筛选魔法”:排除符合条件的数据~
  • 类比:你对管家说 “把展示柜里,商品质量评分不等于 5 分的小泥人拿过来”,管家会过滤掉评分 5 分的,抱来剩下的~

总结(小剧场)

获取单个数据

你:管家!把 ID=5 的小泥人拿过来~
管家:好的!(get(id=5) )精准找到,递给你~

获取全部数据

你:管家!把所有小泥人都拿过来~
管家:好的!(all() )抱来一整箱~

条件筛选数据

你:管家!把商品质量评分大于 3 分的小泥人拿过来~
管家:好的!(filter(quality__gt=3) )筛选后抱来~

四、🗑️ Django ORM 删除数据 

核心目标

教你用 Django ORM 从数据库里 “删除数据” !就像给数据库 “扔垃圾”,把不要的数据清理掉~

方法 1:实例对象删除(精准删单条)

# 1. 获取要删的数据
obj: Feedback = Feedback.objects.get(id=5)  # 获取ID=5的数据
print(f"{obj=}, {obj.text}")# 2. (可选)修改数据(这里只是示例,删之前也能改)
obj.text = "7777"# 3. 删除数据
obj.delete()  # 删除

1. obj = Feedback.objects.get(id=5) → 找到要删的数据
  • 管家帮你找到 “ID=5” 的那条数据 ,赋值给 obj ~
  • 类比:你对管家说 “把展示柜里 ID=5 的小泥人拿出来,我要扔了它”,管家找到后递给你~

2. obj.text = "7777" → (可选)删之前修改
  • 删数据前,也可以改数据(虽然改了又删有点多余,只是演示~)
  • 类比:拿到小泥人后,给它换件新衣服(改数据),但最后还是要扔~

3. obj.delete() → 把数据 “扔垃圾桶”
  • 调用 delete() ,Django 会把 obj 对应的数据从数据库里 永久删除 !
  • 类比:你对管家说 “把这个小泥人扔垃圾桶”,管家就把它从展示柜移除~

方法 2:类方法删除(批量删)

Feedback.objects.filter(text="888").delete()
1. Feedback.objects.filter(text="888") → 找到要删的批量数据
  • 管家先找到 所有 text 字段是 "888" 的数据 ,组成一个 “待删列表”~
  • 类比:你对管家说 “把展示柜里所有衣服是 text="888" 样式的小泥人找出来,我要扔了它们”,管家找到一堆小泥人~
2. .delete() → 批量扔垃圾桶
  • 对 “待删列表” 调用 delete() ,Django 会把这些数据 全部永久删除 !
  • 类比:管家把找到的小泥人,一起扔进垃圾桶~
3. 和方法 1 的区别
  • 方法 1 是 “先找到单条数据 → 删” ,适合删 单条数据 。
  • 方法 2 是 “先筛选批量数据 → 删” ,适合删 多条数据 ,代码更简洁~

总结(小剧场对比)

方法 1 小剧场

你:管家!把 ID=5 的小泥人拿过来,我要扔了它~
管家:好的!(get(id=5) )找到递给你~
你:(可选:给它换件衣服)然后说 “扔了它!”(delete() )
管家:把小泥人从展示柜移除~

方法 2 小剧场

你:管家!把所有衣服是 text="888" 的小泥人找出来,全部扔了~
管家:好的!(filter(text="888") )找到一堆小泥人,然后 delete() 全部扔垃圾桶~

两种方法都能删数据,根据场景选就行啦~ 方法 1 适合删单条,方法 2 适合批量删!

⚠️ 注意:删除数据是 永久操作 ,删了就找不回来啦!一定要谨慎使用~ 🚮

(记得结合条件 filter 精准删数据,别不小心删错啦~)

五、🧙‍♂️ Django ORM 底层 SQL 魔法!“代码→SQL” 的秘密 

核心目标

Django ORM 帮我们写代码时,底层其实是转换成 SQL 语句 和数据库交互的!这节课教你:

  1. 看 ORM 代码对应的 SQL 长啥样~
  2. 直接写 SQL 和数据库交互(偶尔 ORM 搞不定时用)~

显示 SQL(看 ORM 背后的魔法咒语)

# 1. 用 ORM 写查询
obj_list: list[Feedback] = Feedback.objects.filter(id=5).filter(anonymous=False)# 2. 打印底层 SQL
print(f"sql={obj_list.query}")

  obj_list 是个列表,里面装的都是 Feedback 数据对象~

1. Feedback.objects.filter(...) → 写 ORM 查询
  • 你用 ORM 写了一个查询:找 id=5 且 anonymous=False 的数据~
  • 类比:你对管家说 “找 ID=5、且没匿名的小泥人”,管家听懂了你的需求~

2. obj_list.query → 看管家背后的 “SQL 咒语”
  • query 是 ORM 查询对象的一个属性,存储了 Django 转换成的 SQL 语句 !
  • 打印它,就能看到:Django 到底帮你生成了什么样的 SQL 去查数据库~
  • 类比:你好奇管家怎么和数据库 “沟通”,于是让管家把 “沟通咒语”(SQL)给你看~

3. 打印效果
SELECT "beifan_feedback"."id", "beifan_feedback"."quality", ... 
FROM "beifan_feedback" 
WHERE ("beifan_feedback"."id" = 5 AND "beifan_feedback"."anonymous" = False)

  • 这就是 ORM 转换成的 SQL 语句,数据库会执行它来捞数据~
  • 类比:管家把你的需求,翻译成数据库能听懂的 “咒语”(SQL),然后执行!

执行 SQL(直接和数据库唠嗑)

from django.db import connectiondef my_sql():with connection.cursor() as cursor:# 1. 写 SQL 语句cursor.execute("""SELECT *, _ROWID_ "NAVICAT_ROWID" FROM "beifan_feedback" LIMIT 0, 1000""")# 2. 获取结果row = cursor.fetchone()return row

1. from django.db import connection → 连接数据库
  • connection 是 Django 帮我们管理的 数据库连接对象 ,负责和数据库建立连接~
  • 类比:你让管家找一个 “能直接和数据库唠嗑的电话”(connection ),用来打电话下指令~

2. with connection.cursor() as cursor → 拿 “说话的话筒”
  • cursor 是 “数据库话筒”,用它执行 SQL 语句、获取结果~
  • 类比:管家拿起 “话筒”(cursor ),准备帮你和数据库唠嗑~

3. cursor.execute(...) → 说 SQL 咒语
  • 你直接写 SQL 语句,让 cursor 执行~
  • 这里的 SQL 是:SELECT * FROM beifan_feedback LIMIT 0, 1000 (查 beifan_feedback 表,取前 1000 条 )
  • 类比:你对着话筒(cursor )直接说 SQL 咒语,让数据库执行~

4. cursor.fetchone() → 听数据库的回复
  • 执行 SQL 后,用 fetchone() 获取 第一条结果 (也可以用 fetchall() 拿全部 )~
  • 类比:你让管家听数据库的回复,然后把结果拿给你~

5. 什么时候用这种方式?
  • 当 ORM 搞不定复杂查询时(比如超级复杂的多表关联、自定义函数),可以直接写 SQL ~
  • 但要注意:直接写 SQL 会失去 ORM 的 “跨数据库兼容” 优势(不同数据库 SQL 语法可能不同)~

总结(小剧场对比)

显示 SQL 小剧场

你:管家!我用 ORM 写了个查询,想看看你背后对数据库说了啥咒语~
管家:好的!(obj_list.query )把 ORM 转成的 SQL 给你看~

执行 SQL 小剧场

你:管家!我要直接和数据库唠嗑,说一段 SQL 咒语~
管家:好的!(connection + cursor )帮你拿话筒、执行 SQL、拿结果~

两种方式各有用途:

  • 显示 SQL :调试时看 ORM 有没有按你的想法生成 SQL ,像 “查管家的小秘密”~
  • 执行 SQL :ORM 搞不定时,直接写 SQL 硬刚,像 “和数据库直接唠嗑”~

掌握这些,你就能看透 ORM 底层的魔法,还能手动控制 SQL 啦! 🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94148.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94148.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/94148.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink Checkpoint机制:大数据流处理的坚固护盾

引言在大数据技术蓬勃发展的当下,数据处理框架层出不穷,Flink 凭借其卓越的流批一体化处理能力,在大数据流处理领域占据了举足轻重的地位 。它以高吞吐量、低延迟和精准的一次性语义等特性,成为众多企业处理实时数据的首选工具。在…

【STM32-HAL】 SPI通信与Flash数据写入实战

文章目录1.参考教程2. 4种时间模式3. 3个编程接口3.1 HAL_StatusTypeDef HAL_SPI_Transmit(...) :3.1.1 参数说明3.1.2 例子3.2 HAL_StatusTypeDef HAL_SPI_Receive(...) :3.2.1参数说明3.2.2 例子3.3 HAL_StatusTypeDef HAL_SPI_TransmitReceive(...) &…

SNR-Aware Low-light Image Enhancement 论文阅读

信噪比感知的低光照图像增强 摘要 本文提出了一种新的低光照图像增强解决方案,通过联合利用信噪比(SNR)感知的变换器(transformer)和卷积模型,以空间变化的操作方式动态增强像素。对于极低信噪比&#xff0…

在 Vue3 中使用 Mammoth.js(在 Web 应用中预览 Word 文档)的详解、常见场景、常见问题及最佳解决方案的综合指南

一、Mammoth.js 简介与核心功能 Mammoth.js 是一个专用于将 .docx 文档转换为 HTML 的库,适用于在 Web 应用中预览 Word 文档。其核心特点包括: 语义化转换:基于文档样式(如标题、段落)生成简洁的 HTML 结构,忽略复杂样式(如居中、首行缩进)。 轻量高效:适用于需要快…

2025 年 VSCode 插件离线下载硬核攻略

微软 2025 年起关闭 VSCode 官方市场 .vsix 文件直接下载入口,给企业内网开发者带来极大不便。不过别担心,今天提供一个下载.vsix文件地址。 VSC插件下载 (dreamsoul.cn) 下载好的.vsix文件后,打开vscode的应用,选择右上角...打开&#xff…

[leetcode] 位运算

位运算这类题目奇思妙招很多,优化方法更是非常考验经验积累。 常用小技能: bit_count():返回整数的二进制表示中1的个数,e.g. x 7 x.bit_count() # 32.bit_length():返回整数的二进制表示的长度,e.g. …

关于assert()函数,eval()函数,include

一.assert()函数例子assert("strpos($file, ..) false") or die("Detected hacking attempt!");assert("file_exists($file)") or die("That file doesnt exist!");第一个是会检验$file是否有.. ,如果有strpos会返回true&…

ICT模拟零件测试方法--电位器测试

ICT模拟零件测试方法–电位器测试 文章目录ICT模拟零件测试方法--电位器测试电位器测试电位器测试配置电位器测试配置电位器测试注意事项电位器测量选项电位器测试 电位器测试测量从 0.1 欧姆到 10M 欧姆的电阻。 本节介绍: 电位器测试配置电位器测试注意事项电位…

wsl2使用宿主机网络方法

在Windows的资源管理器的地址栏输入: %UserProfile% ,即可打开当前用户的主目录,创建文件: .wslconfig 输入[experimental]networkingModemirroredautoProxytrue之后重启WSL 管理员身份运行PowerShell: 停止WSL&#x…

当Windows远程桌面出现“身份验证错误。要求的函数不受支持”的问题

当Windows远程桌面出现“身份验证错误。要求的函数不受支持”的问题时,可以参考以下方法解决:修改组策略设置适用于Windows专业版、企业版等有组策略编辑器的系统。1. 按下WinR组合键,输入“gpedit.msc”,打开本地组策略编辑器。2…

零售新范式:开源AI大模型、AI智能名片与S2B2C商城小程序源码驱动下的圈层渗透革命

摘要:在消费圈层化与渠道碎片化的双重冲击下,传统零售渠道的"广撒网"模式逐渐失效。阿里巴巴零售通、京东新通路、国美Plus等零售巨头通过技术赋能重构小店生态,但其本质仍停留于供应链效率提升层面。本文创新性提出"开源AI大…

电池自动生产线:科技赋能下的高效制造新范式

在当今科技飞速发展的时代,电池作为众多电子设备和新能源产业的核心部件,其生产效率与质量至关重要。电池自动生产线的出现,犹如一场及时雨,为电池制造行业带来了全新的变革与发展机遇。自动化流程,开启高效生产之门传…

CS224n:Word Vectors and Word Senses(二)

目录 一、共现矩阵 1.1 基于共现矩阵的词向量 二、SVD分解 2.1 基于共现矩阵的词向量 vs. Word2Vec词向量 三、GloVe词向量 3.1 GloVe词向量的好处 3.2 GloVe的一些结果展示 部分笔记来源参考 Beyond Tokens - 知乎 (zhihu.com) NLP教程(1) - 词向量、SVD分解与Word2V…

I Built an Offline-Capable App by Myself: React Native Frontend, C# Backend

This isn’t a story about gluing together a few UI components. It’s about how I, as a solo developer, built a complete mobile application that works offline, syncs data automatically when online, and shares a unified backend with a web-based admin panel. …

在Idea中,配置maven

✨ 哈喽,屏幕前的每一位开发者朋友,你们好呀!✨​ 当你点开这篇文章时,或许正对着 IDE 里闪烁的光标发呆,或许刚解决一个卡了三天的 bug,正端着咖啡松口气 —— 不管此刻的你在经历什么,都想先和…

mac 字体遍历demo

文章目录逻辑字体类头文件实现文件使用文件主程序CMakeLists文件脚本文件逻辑字体类 #ifndef LOGICAL_FONT_H #define LOGICAL_FONT_H#include <string> #include <memory> #include <CoreText/CoreText.h> #include <CoreFoundation/CoreFoundation.h&g…

2025牛客多校第六场 D.漂亮矩阵 K.最大gcd C.栈 L.最小括号串 个人题解

L.最小括号串 #数组操作 #贪心 题目 思路 感谢Leratiomyces大佬赛时的提示&#xff0c;否则估计还一直签不了到&#xff08;&#xff09; 首先&#xff0c;贪心地构造出最优情况&#xff1a;数组左半部分全是(&#xff0c;右半部分全是)&#xff0c;随后通过判断给定的区间…

Ubuntu搭建PX4无人机仿真环境(5) —— 仿真环境搭建(以Ubuntu 22.04,ROS2 Humble 为例)

目录前言1. 准备下载源码方式一&#xff1a;方式二&#xff1a;安装依赖安装 Gazebo2. 安装 Micro XRCE-DDS Agent3. 编译4. 通信5. offboard 测试参考前言 本教程基于 ROS2 &#xff0c;在搭建之前&#xff0c;需要把 ROS2、QGC 等基础环境安装配置完成。但是这块的资料相比较…

自动驾驶中的传感器技术11——Camera(2)

1、自驾Camera关键技术点汇总 ADAS Camera 关键技术点摘选&#xff08;IEEE-P2020工作组&#xff09;如下&#xff1a; Ref &#xff1a; 5. IEEE 相关标准 - 图像质量与色彩技术知识库 https://www.image-engineering.de/content/library/white_paper/P2020_white_paper.pd…

福彩双色球第2025088期篮球号码分析

蔡楚门福彩双色球第2025088期篮球号码分析&#xff0c;上期开出篮球号码数字08&#xff0c;数字形式是合数偶数2路球数字&#xff0c;小号区域&#xff0c;0字头数字。本期篮球号码分析&#xff0c;4尾数0414遗漏9期上次遗漏11期&#xff0c;2尾数0212遗漏4期上次遗漏27期&…