111 lines
2.9 KiB
Markdown
111 lines
2.9 KiB
Markdown
|
|
# 技术博客系统
|
|||
|
|
|
|||
|
|
一个基于 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 数据库
|