Illumine
A web framework written in python.
Install / Use
/learn @streetartist/IllumineREADME
Illumine
一个通用的现代化网站框架。
项目结构
Illumine 采用了模块化的设计,旨在让开发者能够快速构建功能丰富的网站。
- /illumine: 核心库。包含应用程序主逻辑、引擎适配器(支持 Flask/FastAPI)、插件管理器、数据库工具、主题管理以及钩子系统。
- /plugin: 插件目录。用于存放扩展功能的插件(例如评论系统)。
- /admin: 管理后台逻辑(已集成在核心库中)。
- /battery: "Batteries included"(开箱即用)组件。预置了 Blog(博客)、Forum(论坛)等功能模块。
- /website: 网站核心代码。包含您的业务逻辑、数据模型、自定义视图以及网站专属的静态资源和模板。
- /theme: 主题资源。包含模板 (
templates) 和静态文件 (static)。
快速开始
-
安装依赖:
pip install -r requirements.txt -
运行应用:
python app.py -
访问网站:
- 首页: http://127.0.0.1:8000/
- 博客 (Battery): http://127.0.0.1:8000/blog
- 论坛 (Battery): http://127.0.0.1:8000/forum
- 管理后台: http://127.0.0.1:8000/admin
- 自定义页面示例: http://127.0.0.1:8000/custom
核心特性
1. 多引擎支持
Illumine 支持无缝切换底层 Web 框架。您可以在 app.py 初始化时指定:
# 使用 Flask (默认)
app = Illumine(engine_type="flask")
# 使用 FastAPI
app = Illumine(engine_type="fastapi")
2. 强大的模块化系统 (Batteries & Plugins)
- Batteries: 独立的功能模块(如博客、论坛)。每个 Battery 可以拥有自己的路由、数据库模型、模板 (
templates) 和静态文件 (static)。 - Plugins: 跨模块的扩展。插件可以监听系统钩子(Hooks),从而在不修改 Battery 代码的情况下增强功能。
- 示例:
plugin/comments插件通过监听post_render_content钩子,同时为博客和论坛添加了评论区。
- 示例:
3. 资源管理 (Static & Templates)
Illumine 自动管理和路由各模块的资源:
- Theme:
- 模板:
theme/<active_theme>/templates/ - 静态资源:
theme/<active_theme>/static/(自动映射到/static/theme)
- 模板:
- Website:
- 模板:
website/templates/ - 静态资源:
website/static/(自动映射到/static/website)
- 模板:
- Battery:
- 静态资源映射到
/static/battery/<name>
- 静态资源映射到
- Plugin:
- 静态资源映射到
/static/plugin/<name>
- 静态资源映射到
4. 钩子系统 (Hooks)
核心内置了 HookManager,允许模块间解耦交互。
# 注册钩子
app.hooks.register("event_name", callback_function)
# 触发钩子
app.hooks.dispatch("event_name", data)
5. 主题与模板
基于 Jinja2 的强大模板系统。ThemeManager 支持多级模板查找路径,允许主主题覆盖 Battery 或 Plugin 的默认模板。
开发指南
添加新页面
在 website/views.py 中定义路由,并在 app.py 中通过 init_website_routes(app) 注册。
创建自定义 Battery
- 在
battery/下创建目录(例如shop)。 - 创建
__init__.py并定义init_battery(app)函数。 - 可选:添加
templates和static目录,框架会自动加载。
编写插件
- 在
plugin/下创建目录。 - 创建
__init__.py并定义init_plugin(app)函数。 - 使用
app.hooks.register监听感兴趣的事件。
Related Skills
node-connect
348.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
348.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
348.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
