数据驱动静态站点构建部署
概述
从数据源(如 SQLite)构建静态 HTML 页面,启动 HTTP 服务提供访问。支持一键重启、开发模式自动监听文件变动。
配置化输入(必填,先确定)
| 配置 | 说明 | 示例 |
|---|---|---|
project_root |
项目根目录(代码和模板) | {project}/ |
data_source |
数据源 | SQLite 表 a / b |
template_files |
模板/样式/脚本 | template.html / styles.css / app.js |
placeholders |
模板占位符集 | {{CSS}} {{JS}} DATA_A DATA_B |
build_script |
构建脚本 | build.py |
server_script |
HTTP 服务脚本 | start_server.py |
out_html |
构建输出 | output/index.html |
default_port |
默认端口 | 8080 |
restart_script |
一键重启脚本 | restart.bat |
构建流程
数据层读取数据源 → get_items_a() + get_items_b()
→ 封面生成(可选)
→ build 脚本读取 template.html + styles.css + app.js
→ 替换占位符 {{...}} DATA_A DATA_B ...
→ 写入输出 index.html
工作规范
三种运行模式
- 纯构建:只生成静态页面
- 开发模式:监听文件变动 + 起服务(+ 可开浏览器)
- 生产部署:起后台服务 + 打开浏览器
服务端 API(可扩展)
| 端点 | 方法 | 说明 |
|---|---|---|
/api/status |
GET | 查询状态 |
/api/task/{id} |
GET | 查询异步任务状态 |
/api/generate |
POST | 触发内容生成 |
断连容错
服务脚本捕获 ConnectionResetError / ConnectionAbortedError / BrokenPipeError,客户端断连时不崩溃。
空闲端口自动寻找
--auto 自动找空闲端口,避免端口占用。
常用命令
cd {project_root}
python {build_script} # 纯构建
python {build_script} --dev # 开发模式(监听+服务+浏览器)
python {server_script} # 启动服务(默认端口)
python {server_script} 9090 # 指定端口
python {server_script} --auto # 自动找空闲端口
一键重启(部署编排)
{restart_script}:
1. 杀掉默认端口旧进程
2. 重新构建最新页面
3. 启动后台服务
4. 自动打开浏览器
相邻技能
- 数据入库:
filesystem-scan-to-db - 内容生成:
general-content-video-pipeline