镜中CMS 是一个轻量级的内容管理系统,基于 OpenAPI 规范开发,使用 Python Flask 和 Connexion 框架实现。系统提供了文章管理、栏目管理、文件处理等核心功能,适合小型网站或个人博客使用。
- Python 3.8+
- Flask + Connexion
- MySQL 5.7
- OpenAPI 3.0 规范
- Swagger UI
- Python 3.8 或更高版本
- pip 包管理器
- MySQL 5.7
- Windows/Linux/MacOS
- mirror_cms/
- openapi_server/ # 主程序目录
- init.py
- controllers/ # 控制器
- init.py
- default_controller.py
- models/ # 数据模型
- init.py
- base_model.py
- openapi/ # API 规范文件
- openapi.yaml
- database/ # 数据库文件
- cms.db
- tests/ # 测试用例
- init.py
- test_api.py
- requirements.txt # 依赖清单
- README.md # 项目说明
- .gitignore # Git 忽略文件
- openapi_server/ # 主程序目录
pip install -r requirements.txt项目使用 MySQL 5.7 数据库,请确保:
- MySQL 5.7 已正确安装并运行
- 创建数据库:
mysql -u root -p
CREATE DATABASE mirror_cms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 配置数据库连接信息(位于 config.py):
MYSQL_CONFIG = {
'host': 'localhost',
'port': 3306,
'user': 'your_username',
'password': 'your_password',
'database': 'mirror_cms'
}python -m openapi_server服务器默认运行在:
- 地址: http://127.0.0.1:12345
- Swagger UI: http://127.0.0.1:12345/ui/
- API 文档: http://127.0.0.1:12345/openapi.json
- 系统初始化
- 管理员账户设置
- 系统参数配置
- 文章的增删改查
- 文章分类管理
- 栏目管理
- 文件上传下载
所有 API 接口都在 Swagger UI 中有详细说明,包括:
- 接口说明
- 请求参数
- 响应格式
- 示例数据
- 在 openapi/openapi.yaml 中定义接口规范
- 在 controllers 目录下实现对应的处理函数
- 在 models 目录下添加需要的数据模型
- 使用 MySQL 5.7 数据库
- 数据库文件位置: openapi_server/database/cms.db
- 表结构在首次运行时自动创建
docker build -t mirror_cms .docker run -d -p 12345:12345 -v /data/cms:/app/data mirror_cms- 端口映射:12345
- 数据持久化:/data/cms
如遇端口冲突,可以修改 main.py 中的端口号:
app.run(host='127.0.0.1', port=新端口号)确保数据库目录具有读写权限:
chmod 755 openapi_server/database
chmod 644 openapi_server/database/cms.db- 建议在生产环境中修改默认端口
- 及时更新管理员密码
- 定期备份数据库文件
- 限制上传文件类型和大小
MIT License