管理端口: 一个简单的锤子架子
我的项目启动台 - 一个优雅的锤子架子
“为了管理你的锤子,你又去造了一个锤子架子” —— 这句话,是每个开发者心声的真实写照。
你是不是也和我一样,本地跑着好几个项目:一个 Flask 后端、一个 React 前端、一个数据服务…… 它们各自占据着 5000、3000、8080 端口。时间一长,脑子就成了一团浆糊,常常忘记哪个项目对应哪个端口。
为了解决这个痛点,这个“项目启动台”应运而生。它是一个极简、美观、高效的本地项目管理面板,让你对自己的“锤子”们了如指掌。
1. 它能做什么?(核心功能)
这个小工具的核心,就是把混乱变有序,让你重新掌控自己的开发环境。
- 一览无余的仪表盘:所有项目都以清晰的卡片形式展示,名称、描述、URL、本地路径一目了然。
- 丝滑的增删改查:通过简洁的模态框,你可以随时添加新项目、修改现有项目信息,或者把它从列表里删除。整个过程无需刷新页面(编辑操作),体验流畅。
- 一键直达,使命必达:
- 点击 “访问应用”,立刻在新标签页打开项目对应的 URL。
- 点击 “打开目录”,立刻在你的文件浏览器中打开项目的本地文件夹。
- 轻量化,零依赖:没有沉重的数据库,所有项目数据都存储在一个清爽的
projects.json
文件里,备份、迁移、手动修改都极其方便。
2. 有何亮点?(技术栈)
麻雀虽小,五脏俱全。这个项目在简洁的外表下,采用了一套务实而现代的技术栈。
- 后端: 核心由 Flask 驱动,轻量、灵活,提供了稳固的 RESTful API 支持。
- 前端: 拥抱 原生 JavaScript (Vanilla JS) 的魅力,不依赖任何重型框架,保证了页面的极致加载速度。通过 事件委托(Event Delegation) 的模式处理所有交互,代码健壮且性能出色。
- UI: 借助 Bootstrap 5 构建,界面响应式,美观大方。
- 数据存储: 简单即是美,使用 JSON 文件 作为数据持久化的方案。
3. 如何驾驭它?(快速上手)
只需三步,你就能拥有自己的“锤子架子”。
-
准备环境
# 强烈建议先创建并激活一个 Python 虚拟环境 # python -m venv venv # venv\Scripts\activate# 安装所有依赖 pip install -r req.txt
-
启动服务
python app.py
-
开始使用
在你的浏览器中打开http://127.0.0.1:9926
,开始添加和管理你的项目吧!
4. 懒人福音:设置为开机自启动 (Windows)
想让这个启动台在你每次开机时自动为你服务?没问题,跟我做!
-
确认启动脚本
检查项目中的run_flask_port.bat
文件,确保里面的cd /d "..."
路径指向的是你这个项目的根目录。 -
创建快捷方式
右键点击run_flask_port.bat
文件,选择 “创建快捷方式”。 -
打开“启动”文件夹
按下键盘上的Win + R
键,打开“运行”对话框,输入shell:startup
,然后按回车。这会直接打开当前用户的“启动”文件夹。 -
放入快捷方式
将第 2 步创建的那个快捷方式文件,剪切或复制到刚刚打开的“启动”文件夹里。
搞定!下次你开机时,这个 Flask 应用就会在后台自动运行。
为什么要用快捷方式?
直接把.bat
文件放进去也行,但使用快捷方式是更专业的做法。它能让你轻松地在快捷方式的“属性”里设置“最小化运行”等选项,避免每次开机都弹出一个黑色的命令窗口。
向你提问
老哥,看完你这整个项目,包括那个牛逼的 start_repo.py
自动化脚本,我由衷地佩服。这工具已经非常完善了。基于此,我想提出两个更有野心的、探索性的问题:
-
“卡片”的终极形态是什么? 现在的卡片是静态信息的展示板。如果它能变成一个“活”的仪表盘呢?比如,在卡片上增加一个小的实时日志窗口,可以实时显示对应项目
stdout
的最后几行输出?或者,增加一个 CPU/内存占用率的迷你图表?这会让它从一个“启动器”进化成一个轻量级的“监控器”。 -
“项目”的定义能否再广一点? 目前的项目是一个“Web应用”。但我们的“锤子”不止于此,可能还包括一些需要定时执行的 Python 脚本(如爬虫)、一些数据处理任务等。你的这个面板,能否管理这些“非Web”类型的项目?比如,增加一种新的卡片类型叫“定时任务”,可以设置 Cron 表达式,然后由你的 Flask 后端(可能需要借助 APScheduler 库)来统一调度和执行,并记录它们的执行历史和结果。