纯想FastAPI模板介绍
本指南将介绍纯想FastAPI模板的结构和使用方法,这是一个经过精心设计的FastAPI项目模板,集成了最佳实践和常用功能。
主要特性
• 完整的项目结构设计
• JWT认证系统
• SQLAlchemy ORM集成
• Redis缓存支持
• 异步数据库操作
• 完整的用户系统
• Docker容器化支持
• 自动API文档
目录结构
app/
├── alembic/ # 数据库迁移相关文件
├── api/ # API路由层
├── core/ # 核心配置文件
├── crud/ # 数据库CRUD操作
├── models/ # 数据模型定义
├── tool/ # 工具函数
├── __init__.py
├── backend_pre_start.py # 后端启动前预检
├── initial_data.py # 初始数据
├── log_info.py # 日志配置
└── main.py # 应用入口
启动项目
# 克隆项目
git clone https://github.com/liseami/chunxiang-fastapi-temp.git
cd chunxiang-fastapi-temp
# 使用docker-compose启动
docker-compose up -d
# 或本地开发模式
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload
环境配置
# 创建虚拟环境
python -m venv venv
# 激活虚拟环境
# Windows:
.\venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate
# 使用Poetry安装依赖
poetry install
# 启动PostgreSQL(MacOS)
brew services start postgresql
# PostgreSQL数据库配置
# 进入PostgreSQL命令行
psql postgres
# 创建新用户
CREATE USER myuser WITH PASSWORD 'mypassword';
# 创建新数据库
CREATE DATABASE mydb;
# 将数据库所有权限赋予新用户
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
# 切换到新数据库
\c mydb
# 赋予新用户在新数据库中的所有权限
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO myuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO myuser;
# 退出PostgreSQL命令行
\q
数据库迁移
# 进入后端容器
docker compose exec backend bash
# 生成迁移版本
alembic revision --autogenerate -m "migration description"
# 应用迁移
alembic upgrade head
环境变量(.env)
POSTGRES_SERVER=host.docker.internal
POSTGRES_PORT=5432
POSTGRES_USER=your_username
POSTGRES_PASSWORD=your_password
POSTGRES_DB=app