Unity 资源合理性检测
一:表格过度配置,表格资源是否在工程中存在,并输出不存在的资源
import pandas as pd
import glob
import osassets = []
count = 0# 遍历configs文件夹下所有xlsx文件
for file_path in glob.glob('configs/*.xlsx'):count += 1try:sheets = pd.read_excel(file_path, sheet_name=None)except Exception as e:print(f"读取文件 {file_path} 时出错:{e}")continue# 遍历每个工作表for sheet_name, df in sheets.items():print('正在读取文件:', file_path, 'sheet:', sheet_name)all_values = df.values.ravel()for value in all_values:if isinstance(value, str) and value.startswith('Assets/'):assets.append(value)# 写入output.xlsx
output_path = "output.xlsx"
if os.path.exists(output_path):os.remove(output_path)if assets:df_output = pd.DataFrame(assets, columns=["Asset Path"])df_output.to_excel(output_path, index=False)print(f"\n结果已写入 {output_path}")
else:print("\n未找到以'Assets/'开头的内容")# 检查文件是否存在并处理不存在的文件
not_exist_assets = []
for asset_path in assets:# 添加前缀../MainProject/并检查路径是否存在full_path = os.path.join('../MainProject', asset_path)if not os.path.exists(full_path):not_exist_assets.append(asset_path)not_exist_output = "FileNotExist.xlsx"
if not_exist_assets:if os.path.exists(not_exist_output):os.remove(not_exist_output)df_not_exist = pd.DataFrame(not_exist_assets, columns=["Asset Path"])df_not_exist.to_excel(not_exist_output, index=False)print(f"\n以下资源文件不存在,已写入 {not_exist_output}:")for path in not_exist_assets:print(path)
else:print("\n所有资源文件均存在。")# 打印统计信息
print("\n匹配的内容列表:")
for item in assets:print(item)print("\n一共读取了", count, "个文件,匹配到", len(assets), "条有效数据")
二:收集打包目录
import os# 需要处理的文件列表
file_paths = [r'..\MainProject\Assets\Build\AssetBundle\AssetBundleConfig.asset',r'..\MainProject\Assets\Build\AssetBundle\SegmentedUpdateConfig.asset'
]
keys = [] # 存储所有处理后的键值for file_path in file_paths:try:with open(file_path, 'r', encoding='utf-8') as file:print(f"\n{'='*50}")print(f"正在读取文件:{os.path.abspath(file_path)}")print("-" * 50)file_keys = [] # 当前文件的临时存储for line_number, line in enumerate(file, 1):formatted_line = line.strip()# 关键字段提取逻辑if "Assets/" in formatted_line:# 清洗数据:移除 "- " 字符cleaned_key = formatted_line.replace("- ", "")file_keys.append(cleaned_key)print(f"[Line {line_number:03d}] 发现有效键 | 原始内容:{formatted_line} | 处理后:{cleaned_key}")else:print(f"[Line {line_number:03d}] {formatted_line}")keys.extend(file_keys)print(f"\n当前文件提取到 {len(file_keys)} 个有效键")except FileNotFoundError:print(f"错误:文件不存在 {os.path.abspath(file_path)}")except PermissionError:print(f"错误:没有权限读取文件 {file_path}")except UnicodeDecodeError:print(f"错误:文件编码格式不支持,尝试使用其他编码(如utf-16)")except Exception as e:print(f"发生未知错误:{str(e)}")else:print("-" * 50)print(f"文件 {os.path.basename(file_path)} 处理完成")print("\n" + "="*50)
print(f"共处理 {len(file_paths)} 个文件,总计提取到 {len(keys)} 个有效键:")
for i, key in enumerate(keys, 1):print(f"{i:03d}. {key}")
三:是否进包,资源是否存在打包目录
import pandas as pd
import glob
import os
from datetime import datetimedef clean_old_files():"""清理历史文件"""target_files = ['keys.txt', '异常资源报告.xlsx']for file in target_files:try:os.remove(file)print(f" ▹ 已删除旧文件:{file}")except FileNotFoundError:pass # 静默处理文件不存在的情况except Exception as e:print(f"‼️ 文件删除异常:{file}")print(f"错误详情:{str(e)}")def collect_assets():"""从Excel文件收集资源路径"""assets = []file_count = 0print(f"\n{'='*50}")print("开始扫描Excel配置文件")print(f"扫描时间:{datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")for file_path in glob.glob('configs/*.xlsx'):file_count += 1try:sheets = pd.read_excel(file_path, sheet_name=None)filename = os.path.basename(file_path)print(f"\n▸ 正在处理:{filename}")for sheet_name, df in sheets.items():print(f" ├─ 工作表:{sheet_name}")all_values = df.values.ravel()for value in all_values:if isinstance(value, str) and value.startswith('Assets/'):assets.append({'file': filename,'sheet': sheet_name,'path': value})except Exception as e:print(f"\n‼️ 文件处理异常:{file_path}")print(f"错误详情:{str(e)}")print(f"\n{'='*50}")print(f"扫描完成 | 处理文件:{file_count} 个 | 发现路径:{len(assets)} 条")return assetsdef extract_keys(file_paths):"""提取并保存去重键值"""keys = []print(f"\n{'='*50}")print("开始解析关键键值")for path in file_paths:# 处理Excel文件if path.endswith('.xlsx'):print(f"\n▸ 解析Excel文件:{os.path.basename(path)}")try:df = pd.read_excel(path)excel_keys = df.iloc[:, 0].astype(str).dropna().tolist()keys.extend(excel_keys)print(f" ├─ 提取到 {len(excel_keys)} 条键值")for key in excel_keys[:3]: # 显示前3条示例print(f" │ 示例:{key[:60]}...")except Exception as e:print(f"\n‼️ Excel文件读取失败:{path}")print(f"错误详情:{str(e)}")# 处理.asset文件elif path.endswith('.asset'):print(f"\n▸ 解析配置文件:{os.path.basename(path)}")try:with open(path, 'r', encoding='utf-8') as f:line_count = 0for line in f:line_count += 1clean_line = line.strip().replace("- ", "")if "Assets/" in clean_line:keys.append(clean_line)print(f" ├─ [L{line_count:03d}] 发现键值:{clean_line[:40]}...")except Exception as e:print(f"\n‼️ 文件读取失败:{path}")print(f"错误详情:{str(e)}")# 去重并保存keys = list(set(keys))with open('keys.txt', 'w', encoding='utf-8') as f:f.write('\n'.join(keys))print(f"\n{'='*50}")print(f"解析完成 | 去重键值:{len(keys)} 条")print(f" ▹ 键值文件已保存:{os.path.abspath('keys.txt')}")return keysdef validate_assets(assets, keys):"""执行路径校验"""errors = []print(f"\n{'='*50}")print("开始校验路径完整性")print("\n校验进度:")for idx, asset in enumerate(assets, 1):if not any(key in asset['path'] for key in keys):errors.append({'file': asset['file'],'sheet': asset['sheet'],'path': asset['path']})print(f" ▹ 已校验 {idx}/{len(assets)} 条路径", end='\r')print(f"\n\n{'='*50}")if errors:print(f"❌ 发现 {len(errors)} 条异常路径:")for i, err in enumerate(errors[:5], 1):print(f" {i:02d}. 文件:{err['file']} | 工作表:{err['sheet']}\n 路径:{err['path']}")if len(errors) > 5:print(f" ...(仅显示前5条,共{len(errors)}条)")else:print("✅ 所有路径均包含有效键值")return errorsdef main():# 初始化清理print(f"\n{'='*50}")print("开始清理历史文件")clean_old_files()# 配置输入路径asset_files = [r'..\MainProject\Assets\Build\AssetBundle\AssetBundleConfig.asset',r'..\MainProject\Assets\Build\AssetBundle\SegmentedUpdateConfig.asset','代码路径.xlsx']# 执行数据收集assets = collect_assets()keys = extract_keys(asset_files)# 执行校验errors = validate_assets(assets, keys)# 生成报告if errors:report_data = []for err in errors:report_data.append({'来源文件': err['file'],'工作表': err['sheet'],'资源路径': err['path'],'校验结果': 'Invalid'})report_df = pd.DataFrame(report_data)report_path = "异常资源报告.xlsx"report_df.to_excel(report_path, index=False)print(f"\n📊 异常报告已生成:{os.path.abspath(report_path)}")if __name__ == "__main__":main()
相关文章:
Unity 资源合理性检测
一:表格过度配置,表格资源是否在工程中存在,并输出不存在的资源 import pandas as pd import glob import osassets [] count 0# 遍历configs文件夹下所有xlsx文件 for file_path in glob.glob(configs/*.xlsx):count 1try:sheets pd.re…...
vue-study(1)
黑马智数项目 黑马智数是一个数字化园区管理项目,该项目后台可以在线管理园区内的楼宇、企业、车辆和一体杆等资源,可视化大屏通过园区3D模型实时展示园区概况。通过该项目能学到如何用qiankun搭建微前端架构、用Echarts进行数据可视化、以及前沿的3D模…...
XS5032:高性能3DNR+HDR ISP-TX 2K芯片
爱芯元智 XS5032:高性能3DNRHDR ISP-TX 2K芯片 视频输入 支持MIPI接口,4lane,Max.1.5Gbps/lane 支持Sensor并口(DVP) 视频分辨率 支持多种同轴高清制式和标清制式,包括: 960H25/30fps&…...
[原创](现代Delphi 12指南):[macOS 64bit App开发]:如何使用NSString类型字符串?
[作者] 常用网名: 猪头三 出生日期: 1981.XX.XX 企鹅交流: 643439947 个人网站: 80x86汇编小站 编程生涯: 2001年~至今[共24年] 职业生涯: 22年 开发语言: C/C++、80x86ASM、Object Pascal、Objective-C、C#、R、Python、PHP、Perl、 开发工具: Visual Studio、Delphi、XCode、…...
TDengine 流计算引擎设计
流计算架构 TDengine 流计算的架构如下图所示。当用户输入用于创建流的 SQL 后,首先,该 SQL 将在客户端进行解析,并生成流计算执行所需的逻辑执行计划及其相关属性信息。其次,客户端将这些信息发送至 mnode。mnode 利用来自数据源…...
扩展中国剩余定理
中国剩余定理 中国剩余定理 考虑一组模线性同余方程: { x ≡ a 1 ( m o d m 1 ) x ≡ a 2 ( m o d m 2 ) . . . x ≡ a k ( m o d m k ) \begin{cases} x\equiv a_1\pmod{m1} \\ x\equiv a_2\pmod{m2}\\ .\\ .\\ .\\ x\equiv a_k\pmod{mk}\\ \end{cases} ⎩ ⎨ ⎧…...
git检查提交分支和package.json的version版本是否一致
这里写自定义目录标题 一、核心实现步骤1.安装必要依赖2.初始化 Husky3.创建校验脚本4.配置 lint-staged5.更新 Husky 钩子 三、工作流程说明四、注意事项 以下是基于 Git Hooks 的完整解决方案,通过 husky 和自定义脚本实现分支名与版本号一致性校…...
Git 详细使用说明文档(适合小白)
Git 详细使用说明文档(适合小白) 1. 什么是 Git? Git 是一个版本控制系统,帮助你管理和跟踪代码的变更。无论是个人项目还是团队协作,Git 都能帮助你记录代码的历史版本,方便回溯和协作。 2. 安装 Git …...
【嵌入式系统设计师(软考中级)】第二章:嵌入式系统硬件基础知识(2)
文章目录 3.嵌入式系统的存储体系3.1 存储系统的层次结构3.2 内存管理单元(MMU)3.3 RAM和ROM的种类3.3.1 RAM类型对比3.3.2 ROM类型对比 3.4 高速缓存(Cache)3.5 其他存储设备3.5.1 新型存储技术3.5.2 外存接口技术 3.嵌入式系统的…...
rk3588 驱动开发(三)第五章 新字符设备驱动实验
register_chrdev 和 unregister_chrdev 这两个函数是老版本驱动使用的函数,现在新的字符设备驱动已经不再使用这两个函数,而是使用 Linux 内核推荐的新字符设备驱动 API 函数。本节我们就来学习一下如何编写新字符设备驱动,并且在驱动模块加载…...
文件上传--WAF绕过干货
本文主要内容 绕过WAF上传文件 -- 安全狗 -- 宝塔 Burp抓包解析 #上传参数名解析:明确哪些东西能修改? Content-Disposition:—般可更改 name:表单参数值,不能更改 filename:文件名ÿ…...
BERT BERT
BERT ***** 2020年3月11日更新:更小的BERT模型 ***** 这是在《深阅读的学生学得更好:预训练紧凑模型的重要性》(arXiv:1908.08962)中提到的24种较小规模的英文未分词BERT模型的发布。 我们已经证明,标准的BERT架构和…...
Kotlin Multiplatform--02:项目结构进阶
Kotlin Multiplatform--02:项目结构进阶 引言正文 引言 在上一章中,我们对 Kotlin Multiplatform 项目有了基本的了解,已经可以进行开发了。但我们只是使用了系统默认的项目结构。本章介绍了如何进行更复杂的项目结构管理。 正文 在上一章中&…...
【ES实战】Elasticsearch中模糊匹配类的查询
Elasticsearch中模糊匹配类的查询 文章目录 Elasticsearch中模糊匹配类的查询通配符查询前缀匹配查询正则匹配查询标准的正则操作特殊运算符操作 模糊化查询Fuzziness text类型同时配置keyword类型 Elasticsearch中模糊类查询主要有以下 Wildcard Query:通配符查询P…...
纯真社区IP库离线版发布更新
纯真社区IP库离线版发布更新 发布者:技术分享 2005年,随着中国互联网的蓬勃发展,纯真IP库诞生了。作为全球网络空间地理测绘技术的领先者,纯真开源项目为中国互联网行业提供了高质量的网络空间IP库数据。纯真IP库目前已经覆盖超…...
直接偏好优化(Direct Preference Optimization,DPO):论文与源码解析
简介 虽然大规模无监督语言模型(LMs)学习了广泛的世界知识和一些推理技能,但由于它们是基于完全无监督训练,仍很难控制其行为。 微调无监督LM使其对齐偏好,尽管大规模无监督的语言模型(LMs)能…...
uniapp-商城-34-shop 购物车 选好了 进行订单确认
在shop页面选中商品添加到购物车,可选好后,进行确认和支付。具体呈现在shop页面。 1 购物车栏 shop页面代码: 购物车代码: 代码: <template><view><view class"carlayout"><!-- 车里…...
Kafka命令行的使用/Spark-Streaming核心编程(二)
Kafka命令行的使用 创建topic kafka-topics.sh --create --zookeeper node01:2181,node02:2181,node03:2181 --topic test1 --partitions 3 --replication-factor 3 分区数量,副本数量,都是必须的。 数据的形式: 主题名称-分区编号。 在…...
虚拟机详解
虚拟机详解 1. 虚拟机(Virtual Machine)的定义 系统虚拟机:通过软件模拟完整计算机系统(CPU、内存、外设等),如 VMware、VirtualBox。进程级虚拟机:为单个应用提供虚拟执行环境,如 …...
NOIP2013 提高组.转圈游戏
目录 题目算法标签: 数论, 模运算思路代码 题目 504. 转圈游戏 算法标签: 数论, 模运算 思路 看题意不难看出, 计算的是 ( x 1 0 k m ) m o d n (x 10 ^ k \times m) \mod n (x10km)modn, 如果直接计算一定会超时, 因此可以使用快速幂进行优化 代码 #include <iost…...
【金仓数据库征文】加速数字化转型:金仓数据库在金融与能源领域强势崛起
目录 一、引言 二、金仓数据库(KingbaseES)概述 1. 发展历程与市场地位 2. 核心技术架构 3. 金仓数据库的特点 三、金仓数据库在金融行业的应用 1. 金融行业的挑战与需求 2. 金仓数据库在金融行业的优势 3. 金仓数据库在金融行业的实际应用案例 …...
济南国网数字化培训班学习笔记-第二组-5节-输电线路设计
输电线路设计 工程设计阶段划分 35kv及以上输变电工程勘测设计全过程 可行性研究(包括规划、工程选站)(包括电力系统一次二次,站址选择及工程设想,线路工程选择及工程设想,节能降耗分析,环境…...
【前端】【业务场景】【面试】在前端开发中,如何实现一个可拖动和可缩放的元素,并且处理好边界限制和性能优化?
问题:在前端开发中,如何实现一个可拖动和可缩放的元素,并且处理好边界限制和性能优化? 一、实现可拖动和可缩放元素 HTML 和 CSS 基础设置: 创建一个 HTML 元素,并为其设置基本样式,使其在页面…...
BOM与DOM(解疑document window关系)
BOM(浏览器对象模型) 定义与作用 BOM(Browser Object Model)提供与浏览器窗口交互的接口,用于控制导航、窗口尺寸、历史记录等浏览器行为 window:浏览器窗口的顶层对象,包含全局属性和方法&am…...
504 nginx解决方案
当遇到 504 Gateway Time-out 错误时,通常是因为 Nginx 作为反向代理等待后端服务(如 PHP-FPM、Java 应用等)响应的时间超过了预设的超时阈值。以下是详细的解决方案,结合知识库中的信息整理而成: 一、核心原因分析 后…...
【LLM+Code】Windsurf Agent 模式PromptTools详细解读
一、前言 https://windsurf.com/ https://windsurf.com/blog/why-we-built-windsurf https://github.com/x1xhlol/system-prompts-and-models-of-ai-tools/tree/main/Windsurf 二、System Prompt 相比于cursor和claude code, windsurf的system prompt非常长&am…...
第三章:Transport Mechanisms
Chapter 3: Transport Mechanisms 🌟 从上一章到本章 在第二章:MCP服务器分类中,我们学会了如何根据需求选择不同类别的服务器(如文件系统、数据库等)。现在想象这样一个场景:你有一个本地文件服务器和一个…...
shell练习题(1)
练习: 1.建立脚本service.sh,当执行的时候要求输入(1、2、3、4、5)时安装对应的httpd、vim、wget、更换aliyum等功能,当输入错误 时会提示你,应该输入正确的值 [rootbogon yy]# cat service.sh #!/bin/bash cat <<-EOF ----------------------…...
【解决】Android Gradle Sync 报错 Could not read workspace metadata
异常信息 Caused by: java.io.UncheckedIOException:Could not read workspace metadata from C:\Users\xxx\.gradle\caches\transforms-4\69955912123c68eecd096b71c66ee211\metadata.bin 异常原因 看字面意思是不能读取metadata文件,原因可能是因为缓存目录异常…...
Python中的 for 与 迭代器
文章目录 一、for 循环的底层机制示例:手动模拟 for 循环 二、可迭代对象 vs 迭代器关键区别: 三、for 循环的典型应用场景1. 遍历序列类型2. 遍历字典3. 结合 range() 生成数字序列4. 遍历文件内容 四、迭代器的自定义实现示例:生成斐波那契…...
上篇:深入剖析 BLE 底层物理层与链路层(约5000字)
引言 在无线通信领域,Bluetooth Low Energy(BLE)以其超低功耗、灵活的连接模式和良好的生态支持,成为 IoT 与可穿戴设备的首选技术。要想在实际项目中优化性能、控制功耗、保证可靠通信,必须对 BLE 协议栈的底层细节有深入了解。本篇将重点围绕物理层(PHY)与链路层(Li…...
ArcGIS Pro跨图层复制粘贴
在map视图中,点击selection中的Select按钮,保持选择状态。 点击需要复制的要素,保持选中状态。右击点击copy,或CtrlC进行复制。 在Clipboard下拉框中点击Paste Special,选择需要粘贴的图层后点击OK。...
今日CSS学习浮动->定位
------------------------------------------------------------------------------------------------------- CSS的浮动 float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及包含块或另一个浮动框的边缘。 float 属性定义元素在哪个方向浮…...
性行为同意协议系统网站源码
性行为同意协议系统网站源码 一个用于创建、签署和管理性行为同意协议的 Web 应用程序。该应用允许用户在线创建详细的性行为同意协议,并通过数字签名方式进行签署,同时支持导出为 PDF 格式保存。 功能特性 创建自定义性同意协议 多步骤表单引导用户完…...
项目自动化测试
一.设计测试用例(细致全面) 二.先引入所需要的pom.xml依赖 1.selenium依赖 2.webdrivermanager依赖 3.commons-io依赖 编写测试用例–按照页面对用例进行划分,每个页面是Java文件,页面下的所有用例统一管理 三.common包(放入公用包) 类1utils 可以调用driver对象,访问url …...
可变形卷积(可以观察到变形图片的卷积)【DCNv1、DCNv2、DCNv3】
一、DCNv1——可以观察到扭曲的图片 1.传统卷积的问题 在普通的卷积操作中,比如 33 卷积,采样的位置总是固定的:就是中间一个点,四周八个点,整齐地排成一个小网格。 但现实中的图像并不整齐——比如猫的身体弯着、车…...
vue3,element ui框架中为el-table表格实现自动滚动,并实现表头汇总数据
基础用法不太明白的请参考官网文档 ;element ui Plus官网:Table 表格 | Element PlusA Vue 3 based component library for designers and developershttps://element-plus.org/zh-CN/component/table.html 1、添加一个基础表格 <template><e…...
Selenium 怎么加入代理IP,以及怎么检测爬虫运行的时候,是否用了代理IP?
使用selenium爬虫的时候,如果不加入代理IP,很容易会被网站识别,容易封号; 最近去了解了一下买代理ip,但是还是有一些不太懂的东西。 例如有了代理ip以后,怎么用在爬虫上,requests 和selenium的…...
【Python爬虫实战篇】--Selenium爬取Mysteel数据
任务:爬取我的钢铁网的钢材价格指数数据,需要输入时间和钢材类型 网站:钢铁价格指数_今日钢铁价格指数实时行情走势_我的钢铁指数 目录 1.环境搭建 2.打开网站 3.点击右侧按钮展开 4.点击需要的钢材数据 5.点击“按日查询” 6.输入日查…...
LLM学习笔记4——本地部署Docker、vLLM和Qwen2.5-32B-Instruct实现OpenManus的使用
系列文章目录 参考博客 参考博客 参考博客 参考博客 文章目录 系列文章目录前言一、OpenManus介绍二、环境搭建1.DockervLLM2.搭建OpenManus1)安装anaconda虚拟环境2)安装OpenManus3)下载并配置Qwen2.5-32B-Instruct模型4)配置与…...
aarcpy 列表函数的使用(1)
arcpy.ListFeatureClasses() 该函数用于列出指定工作空间中的所有要素类。可以通过通配符和过滤条件进一步筛选结果。 语法: python arcpy.ListFeatureClasses(wild_cardNone, feature_typeNone)• wild_card:用于筛选要素类名称的通配符,…...
maven工程中引入外部jar
1、引入模块下的jar 1.负责打包的模块,pom中加上这个插件,这个可以把外部jar包打入工程中。 <!-- 打包 --> <build><finalName>xxx-send-admin</finalName><resources><resource><directory>${project.base…...
C++智能指针上
一、裸指针 “裸指针”是最基础的,直接存储内存地址的指针类型。特点:①它本身没有自动的内存管理机制:如它不会自动释放内存,也不会检查是否指向有效的内存区域;②直接操作内存地址,不进行任何的边界检查&…...
flutter 中各种日志
日志方法对比 输出方式调试模式控制台输出发布模式控制台输出DevTools Logging 视图print()✅ 显示✅ 显示❌ 不显示debugPrint()✅ 显示✅ 显示❌ 不显示stderr.writeln()✅ 显示✅ 显示✅ 显示dart:developer.log()✅ 显示❌ 不显示✅ 显示 详细说明: print()&a…...
Java面试:从Spring Boot到微服务的全面考核
Java面试:从Spring Boot到微服务的全面考核 场景设定: 在一家互联网大厂的面试室内,严肃的面试官正准备开始对前来面试的赵大宝进行技术考核。赵大宝是一位自称在Java开发方面经验丰富的求职者,不过却是个搞笑的水货程序员。 第…...
安卓adb shell串口基础指令
目录 前言一、列出串口设备节点二、修改串口设备权限三、串口参数配置(stty命令)3.1 基本配置3.2 其他常用参数3.3 查看当前配置 四、数据收发操作4.1 发送数据4.2 接受数据 参考链接: 前言 在 Android 设备上,ADB提供了一系列命令用于与设备…...
大模型技术全景解析:从基础架构到Prompt工程
大模型技术全景解析:从基础架构到Prompt工程 引言 近年来,大型语言模型(LLMs)如GPT、BERT等取得了突破性进展,彻底改变了自然语言处理领域。本文将全面剖析大模型的核心技术要素,包括三要素构成、系统架构、机器学习范式演进、P…...
404页面精选(一)翻滚盒子
内容很详细,直接上代码 效果演示 源码 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>翻滚盒子</title><style>body {background: #000;h…...
LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下
LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下 一、下载后端源码 我们学习一下他的前后端分离的项目吧RuoYi-Vue,我看他有单独的Vue3版本的项目,我们就整这新的吧,向新新势力低头。 1、下载地址 git clone https://gitcode.com/yangzongzhuan/RuoYi-Vue.git2、…...
Hadoop基础知识
Hadoop 是由 Apache 基金会开发的开源分布式计算框架,主要用于处理海量数据的存储和计算问题。其核心设计基于 Google 的 MapReduce 编程模型和 GFS(Google File System),旨在通过集群化的廉价硬件实现高可靠性、高扩展性的大数据…...