初始化技术博客项目

功能特性:
- 前端文章展示 (Markdown渲染、代码高亮)
- 后台管理系统 (文章、分类、标签、作者管理)
- 图片上传 (点击、拖拽、粘贴)
- 网站设置 (Logo、底部宣传图片上传)
- 访问统计 (IP记录、趋势图表)
- 参考来源、附件支持
- 单端口部署 (16012)

技术栈:
- Flask 3.0 + SQLAlchemy
- SQLite数据库
- marked.js + highlight.js (Markdown渲染)
- Chart.js (统计图表)
This commit is contained in:
2026-06-04 23:12:34 +08:00
commit e689fed71e
53 changed files with 6506 additions and 0 deletions

111
README.md Normal file
View File

@@ -0,0 +1,111 @@
# 技术博客系统
一个基于 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 数据库