基于 Python FastAPI + Jinja2 的个人博客系统。
- 服务端渲染,SEO 友好
- 主题切换(亮色/暗色)
- Markdown 文章编辑与渲染
- 文章同步到 CSDN、微信公众号
- 评论系统(支持注册用户和匿名评论)
- 管理后台
- Python 3.11+
- FastAPI
- Jinja2
- SQLAlchemy
- SQLite
Windows 用户:
- 初始化环境(首次运行):
setup.bat- 启动服务:
start.batLinux/Mac 用户:
- 初始化环境(首次运行):
chmod +x setup.sh start.sh
./setup.sh- 启动服务:
./start.sh- 创建虚拟环境(推荐):
python -m venv .venv-
激活虚拟环境:
- Windows:
.venv\Scripts\activate - Linux/Mac:
source .venv/bin/activate
- Windows:
-
安装依赖:
pip install --upgrade pip
pip install -r requirements.txt- 启动服务:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000- 用户名:admin
- 密码:admin123
blog-python/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI 应用入口
│ ├── models.py # 数据库模型
│ ├── schemas.py # Pydantic 校验模型
│ ├── crud.py # 数据访问层
│ ├── services/ # 服务层
│ │ ├── sync.py # 同步服务
│ │ └── adapters/ # 平台适配器
│ ├── templates/ # Jinja2 模板
│ └── static/ # 静态资源
├── config.py # 配置文件
├── requirements.txt # 依赖
├── setup.bat/sh # 环境初始化脚本
├── start.bat/sh # 启动脚本
└── doc/
└── development_design.md # 设计方案
如果你使用 Python 3.13 并遇到依赖编译失败(如 pydantic-core 或 sqlalchemy),项目已自动升级到兼容版本:
pydantic: 2.5.3 → 2.10.6sqlalchemy: 2.0.25 → 2.0.36
直接运行 setup.bat 或 setup.sh 即可自动安装兼容版本。
如需手动解决:
pip install --upgrade pip
pip install pydantic==2.10.6 sqlalchemy==2.0.36Windows PowerShell 用户:
如果运行脚本时提示 "无法将项识别为 cmdlet",请使用 .\ 前缀:
.\setup.bat
.\start.bat编码问题: 脚本已使用 UTF-8 编码,如果仍出现乱码,请确保终端支持 UTF-8:
chcp 65001
