# 技术博客系统 一个基于 Flask 的技术文章展示和管理系统。 ## 功能特性 - **前端展示**:文章列表、文章详情、分类筛选、标签筛选、热门文章 - **后台管理**:文章管理、分类管理、标签管理、仪表盘统计 - **架构清晰**:模型、服务、路由分层,便于维护扩展 ## 项目结构 ``` tech-blog/ ├── app/ # 应用核心代码 │ ├── __init__.py # Flask应用工厂 │ ├── config.py # 配置文件 │ ├── models/ # 数据模型 │ │ ├── article.py # 文章模型 │ │ ├── category.py # 分类模型 │ │ ├── tag.py # 标签模型 │ │ └── admin.py # 管理员模型 │ ├── routes/ # 路由控制器 │ │ ├── frontend.py # 前端路由 │ │ └── admin.py # 后台路由 │ ├── services/ # 业务服务层 │ │ ├── article_service.py │ │ ├── category_service.py │ │ ├── tag_service.py │ │ └── admin_service.py │ ├── templates/ # 模板文件 │ │ ├── frontend/ # 前端模板 │ │ └── admin/ # 后台模板 │ └── static/ # 静态资源 │ └── css/ ├── migrations/ # 数据库迁移 ├── data/ # 数据库文件目录 ├── tests/ # 测试文件 ├── requirements.txt # 依赖清单 ├── run.py # 启动脚本 ├── .env # 环境变量 └── README.md ``` ## 安装部署 ### 1. 安装依赖 ```bash cd works/tech-blog pip install -r requirements.txt pip install python-slugify # 额外的slug生成依赖 ``` ### 2. 初始化数据库 ```bash export FLASK_APP=run.py flask init-db ``` ### 3. 创建管理员账户 ```bash flask create-admin admin your_password ``` ### 4. 启动服务 ```bash python run.py ``` 服务将在端口 **16012** 上运行。 ## 访问地址 - **前端首页**:http://localhost:16012/ - **后台登录**:http://localhost:16012/admin/login ## 使用说明 ### 后台管理 1. 使用创建的管理员账户登录后台 2. 在分类管理中创建文章分类 3. 在标签管理中创建标签 4. 在文章管理中创建和发布文章 ### 前端展示 - 首页显示已发布的文章列表 - 点击文章标题查看详情 - 通过分类和标签筛选文章 - 侧边栏显示热门文章和最新文章 ## 技术栈 - **后端**:Flask 3.0 + SQLAlchemy - **数据库**:SQLite(可轻松切换到 PostgreSQL) - **前端**:Jinja2 模板 + CSS - **部署**:单端口 16012 ## 扩展建议 - 添加 Markdown 渲染支持 - 添加评论功能 - 添加搜索功能 - 添加用户权限管理 - 添加 API 接口 - 切换到 PostgreSQL 数据库