一个优美且牛逼的 Python 程序管理平台——基于HTML和PHP

一个用于存放 Python 代码的平台,具有前后端页面。可设置和展示多个项目(pyhton制作的小工具),每个项目都可以设置、上传:代码、界面截图、exe程序,还可以设置一句话简介和详细介绍(支持Makedown)。

展示

前端:

截图

前端页面:

后台页面:

web源码

前台

index.php:

get_details.php:

后台

以下文件均位于/admin文件夹。

index:

login:

template.html:

web文件结构

项目文件结构概览


关键目录与文件说明

1. admin/ 目录

  • index.php: 扮演了“控制器”的角色。它负责扫描 projects/ 目录下的文件夹并转换为项目列表,同时处理所有的上传逻辑。
  • template.html: 扮演了“视图”的角色。通过内嵌 JavaScript 监听全局 paste 事件实现 Ctrl+V 上传,并利用 FileReader API 实现 .py 文件的即时读取与代码区自动填充。

2. projects/ 目录 (数据层)

这是系统的“数据库”。

  • 分层设计: 采用 项目 -> 版本 -> 附件 的三级结构。
  • 自动分拣: 后端逻辑会根据文件后缀,自动将上传的文件放入对应的子目录:
    • 图片 $\rightarrow$ /screenshots/
    • 可执行程序 $\rightarrow$ /exe/
    • 源码 $\rightarrow$ 根目录

3. 命名约定

  • 源码文件: 采用 项目名_版本号.py 的格式自动命名。
  • 重命名逻辑: 当你在后台修改项目名称时,admin/index.php 会调用 rename() 函数更改对应的文件夹名称,由于所有路径都是动态生成的,修改后前台页面会自动同步。

部署建议

  1. 权限设置: 确保 projects/ 文件夹对 Web 服务器(如 www-dataapache 用户)具有写权限
  2. 安全防护: projects/ 目录内可以放置一个简单的 .htaccess (如果你使用 Apache) 来禁止执行 PHP 脚本,防止恶意上传。

详细介绍

🚀 工具核心介绍

该展示站采用 PHP + JavaScript (Vanilla) 的轻量级架构,无需数据库,完全基于文件系统自动构建索引。

1. 自动化项目管理 (File-Based Auto-Indexing)

  • 零配置添加:只需在 projects 文件夹下创建一个新文件夹,网站侧边栏会自动同步显示。
  • Emoji 视觉识别:通过每个项目根目录下的 emoji.txt,为每个项目定义专属图标,增强辨识度。

2. 专业级代码展示 (Pro-Code Display)

  • 语法高亮:集成了 Highlight.js,支持 Python 等多种语言的自动高亮,代码框采用经典的 Atom Dark 深色主题。
  • 尺寸优化:代码框经过高度限制(带内部滚动条)和宽度窄化处理,确保页面整体比例协调,不显臃肿。
  • 一键复制:内置代码复制功能,方便用户直接提取核心逻辑。

3. 深度交互体验 (Interactive UX)

  • Markdown 弹窗介绍:为了保持主页清爽,详细的项目文档被移入了一个优雅的弹出层。它支持全功能的 Markdown 渲染(标题、列表、加粗等)。
  • 多版本切换系统:用户可以通过下拉菜单查看项目的历史版本,系统会自动切换对应的源码、截图和下载链接。
  • 全屏预览:点击界面预览图后,图片会以 Flex 布局完美居中弹出,提供无干扰的视觉体验。

4. 完整的资源分发 (Resource Distribution)

  • 环境依赖说明:专门开辟了“运行环境/依赖”区域,清晰展示项目运行所需的 Python 库或硬件要求。
  • 多端下载:区分了“源码下载”和“EXE 执行程序下载”,满足开发者和普通用户的不同需求。

📂 目录结构参考

你的工具通过以下逻辑驱动:

  • 根目录index.php (展示主页), get_details.php (数据中心)。
  • 项目目录
    • emoji.txt (图标)
    • summary.txt (短简介)
    • info.txt (Markdown 详细介绍)
    • requirements.txt (运行依赖)
    • v1.0/v2.0/ (版本文件夹,内含 .py 源码、screenshots/exe/)

🌟 总结

这个工具现在看起来就像一个迷你的 GitHub + App Store 结合体。它非常适合用来:

  • 展示你的编程课设或外包项目。
  • 作为个人技术博客的补充,存放可运行的代码 Demo。
  • 在公司内网或个人服务器上分发自研的小工具。