# 知识库博客平台 **Repository Path**: rebortgzmyinit/blog-platform ## Basic Information - **Project Name**: 知识库博客平台 - **Description**: 基于 FastAPI + MySQL+SQLAlchemy ORM的前后端一体化博客系统,专为企业内部知识分享设计。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2025-12-01 - **Last Updated**: 2026-01-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: FastAPI ## README # 企业博客论坛平台 基于 FastAPI + MySQL 的前后端一体化博客系统,专为企业内部知识分享设计。 ## ✨ 功能特性 ### 核心功能 - 🔐 **权限管理**: 管理员/后端用户/访客三级权限体系 - ✍️ **文章管理**: 支持Markdown格式,发布/编辑/删除文章 - � **内计容浏览**: 现代化UI,响应式设计,优秀的阅读体验 - 💬 **互动功能**: 评论、点赞、阅读统计 - 🎨 **美观界面**: TailwindCSS设计,现代化UI风格 ### 技术特性 - ⚡ FastAPI高性能异步框架 - 🔒 JWT身份认证 - 📝 Markdown内容渲染 - 🗄️ SQLAlchemy ORM - 📊 RESTful API设计 - 📱 响应式布局 ## 🚀 快速开始 ### 方式一:使用启动脚本(推荐 - Windows) 1. **创建数据库** ```sql CREATE DATABASE blog_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. **配置环境** 编辑 `.env` 文件,修改数据库密码: ``` DATABASE_URL=mysql+pymysql://root:你的密码@localhost:3306/blog_db ``` 3. **运行启动脚本** ```bash start.bat ``` ### 方式二:手动启动 1. **安装依赖** ```bash pip install -r requirements.txt ``` 2. **创建数据库** ```bash # 使用SQL脚本 mysql -u root -p < create_database.sql # 或手动创建 mysql -u root -p CREATE DATABASE blog_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 3. **配置环境变量** ```bash # 复制配置文件 cp .env.example .env # 编辑 .env 文件,修改数据库连接信息 ``` 4. **初始化数据库** ```bash python init_db.py ``` 直接使用项目根目录的sql初始化即可 5. **启动服务** ```bash uvicorn backend.main:app --reload --host 0.0.0.0 --port 8000 ``` ### 访问系统 | 功能 | 地址 | 说明 | |------|------|------| | 前端首页 | http://localhost:8000 | 浏览文章 | | 文章详情 | http://localhost:8000/article/{id} | 查看文章详情 | | 后台登录 | http://localhost:8000/admin/login | 管理员/用户登录 | | 后台管理 | http://localhost:8000/admin/dashboard | 文章和用户管理 | | API文档 | http://localhost:8000/docs | Swagger交互式文档 | ### 默认账号 **管理员账号** - 用户名: `admin` - 密码: `admin123` ⚠️ **重要**: 首次登录后请立即修改密码! ## 📖 文档导航 | 文档 | 说明 | |------|------| | [快速开始](QUICK_START.md) | 5分钟快速部署指南 | | [配置指南](CONFIG_GUIDE.md) | 配置管理详细说明 | | [用户指南](USER_GUIDE.md) | 详细的功能使用说明 | | [部署指南](DEPLOYMENT.md) | 生产环境部署文档 | | [项目总览](PROJECT_OVERVIEW.md) | 架构设计和技术细节 | ## ⚙️ 配置管理 项目采用统一的配置管理方式,所有配置集中在 `config.py` 中: ### 主要配置项 ```python # 数据库配置 DATABASE_URL=mysql+pymysql://root:password@localhost:3306/blog_db DB_POOL_SIZE=5 DB_MAX_OVERFLOW=10 # JWT认证配置 SECRET_KEY=your-secret-key-change-this ACCESS_TOKEN_EXPIRE_MINUTES=30 # 应用配置 DEBUG=False HOST=0.0.0.0 PORT=8000 ``` 详细配置说明请查看 [CONFIG_GUIDE.md](CONFIG_GUIDE.md) ## 🎯 核心功能说明 ### 管理员功能 - 创建后端用户账号 - 管理所有用户 - 发布/编辑/删除任何文章 - 查看系统统计 ### 后端用户功能 - 登录后台系统 - 发布新文章(支持Markdown) - 编辑自己的文章 - 删除自己的文章 - 查看文章统计数据 ### 前端访客功能 - 浏览所有文章 - 查看文章详情 - 发表评论 - 点赞文章 - 无需登录即可访问 ## 🔧 技术栈 ### 后端 - **框架**: FastAPI 0.104.1 - **数据库**: MySQL 8.0+ - **ORM**: SQLAlchemy 2.0 - **认证**: JWT (python-jose) - **密码加密**: bcrypt ### 前端 - **UI框架**: TailwindCSS 3.x - **图标**: Font Awesome 6.4 - **Markdown渲染**: marked.js - **模板引擎**: Jinja2 ## 📊 数据库设计 ### 核心表结构 **users** - 用户表 - 用户名、邮箱、密码 - 管理员标识、激活状态 **articles** - 文章表 - 标题、内容、作者 - 阅读数、创建/更新时间 **comments** - 评论表 - 评论内容、文章关联 - 用户/访客信息 **likes** - 点赞表 - 文章关联、IP地址 - 防止重复点赞 ## 🔒 安全特性 - ✅ 密码bcrypt加密存储 - ✅ JWT Token身份验证 - ✅ 三级权限控制 - ✅ SQL注入防护(ORM) - ✅ XSS攻击防护 - ✅ IP限制点赞 ## 🚀 生产环境部署 详细部署步骤请参考 [DEPLOYMENT.md](DEPLOYMENT.md) ### 快速部署要点 1. **使用Nginx反向代理** 2. **配置HTTPS证书** 3. **使用Supervisor管理进程** 4. **配置数据库备份** 5. **启用日志监控** ## 📝 API接口 完整API文档访问: http://localhost:8000/docs ### 主要接口 | 方法 | 路径 | 说明 | 权限 | |------|------|------|------| | POST | /api/auth/login | 用户登录 | 公开 | | GET | /api/articles | 获取文章列表 | 公开 | | GET | /api/articles/{id} | 获取文章详情 | 公开 | | POST | /api/articles | 创建文章 | 需登录 | | PUT | /api/articles/{id} | 更新文章 | 需登录 | | DELETE | /api/articles/{id} | 删除文章 | 需登录 | | POST | /api/articles/{id}/comments | 发表评论 | 公开 | | POST | /api/articles/{id}/like | 点赞文章 | 公开 | | POST | /api/users | 创建用户 | 需管理员 | | GET | /api/users | 获取用户列表 | 需管理员 | ## 🛠️ 常见问题 ### 数据库连接失败 检查MySQL服务是否启动,数据库配置是否正确。 ### 端口被占用 修改启动命令中的端口号: ```bash uvicorn backend.main:app --port 8001 ``` ### 依赖安装失败 使用国内镜像源: ```bash pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple ``` 更多问题请查看 [USER_GUIDE.md](USER_GUIDE.md) 的常见问题部分。 ## 📄 许可证 本项目仅供企业内部使用。 ## 👥 技术支持 如有问题或建议,请联系作者@Mrc --- **版本**: v1.0.0 **最后更新**: 2025-11-24 **开发者**: @Mrc vx:Benicen 注明来意~