功能特性: - 前端文章展示 (Markdown渲染、代码高亮) - 后台管理系统 (文章、分类、标签、作者管理) - 图片上传 (点击、拖拽、粘贴) - 网站设置 (Logo、底部宣传图片上传) - 访问统计 (IP记录、趋势图表) - 参考来源、附件支持 - 单端口部署 (16012) 技术栈: - Flask 3.0 + SQLAlchemy - SQLite数据库 - marked.js + highlight.js (Markdown渲染) - Chart.js (统计图表)
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 数据库 |