PyCodeV CMS 是一个模块化设计的内容管理系统。本文从模块划分、实体层到数据库设计,带你快速浏览整体架构。
按业务域划分模块
代码按业务域组织在 modules 下,彼此职责清晰:cms 负责内容、栏目、广告、模板;system 负责用户、角色、菜单;flow 负责工作流;form 负责表单。这种划分让不同业务可以独立演进。
实体层与数据库
系统共约 60 张表,内容、栏目、广告等核心数据均由 Pony ORM 实体定义。数据库连接通过工厂单例管理,全进程共享同一个实例,避免连接泛滥。
from pycodev.config.db_config import create_db
db = create_db("mysql", "master") # 全进程共享同一数据库实例
三层协作
controller 接收请求并做参数整理,service 组合业务逻辑,entity 负责数据增删改查,并在写入时自动同步附件引用、推荐位、标签与搜索索引。
栏目、内容、广告之间通过 code / id 关联,扩展新业务时只需新增对应模块,不必改动既有模块。