快速开始
约 1048 字大约 3 分钟
警告
fba 仅适用于资深 Python 后端开发人员,如果您是非资深用户,我们建议您从 精简版 开始学习
本地开发
提示
如果您是 PostgreSQL 用户,请先移步到 切换数据库
准备本地环境
- Python 3.10+
- MySQL 8.0+ 或 PostgreSQL 16.0 +
- Redis 推荐最新稳定版
准备 Git 仓库 二选一
拉取源代码git clone https://github.com/fastapi-practices/fastapi_best_architecture.git创建模板仓库此项目支持创建模板仓库,意味着,你可以直接创建一个非 fork 的个人仓库,如图所示,进入此项目 GitHub 首页, 使用
use this template按钮创建即可,创建完成之后,使用git clone命令拉取你自己的仓库即可
安装依赖包
架构依赖
注意
此项目使用 uv 作为项目管理器,您需要先 安装 uv, 如果您本地已经存在 uv, 建议将其升级至最新版本
拉取项目到本地后,在项目根目录打开终端,执行以下命令安装架构依赖
uv - syncuv sync --frozenuv - pipuv pip install -r requirements.txt插件依赖
执行
backend/scripts/init_plugin.py文件安装插件依赖报错:ModuleNotFoundError: No module named 'backend'
自行搜索:将源根到添加到 PYTHONPATH
执行以下命令:
Linux/Mac:
# 修改 /path/to/fba 为您本地 fba 项目路径 export PYTHONPATH=$PYTHONPATH:/path/to/fbaWindows:
# 修改 D:\path\to\fba 为您本地 fba 项目路径 set PYTHONPATH=%PYTHONPATH%;D:\path\to\fba
警告
为了实现插件 0 耦合,插件依赖并未使用 uv 进行管理。执行上面脚本文件后,如果后期您仍需同步环境依赖,请务必使用命令:
uv sync --frozen --inexact,否则插件依赖将被 uv 自动清理!
创建数据库:
fba,选择 utf8mb4 编码(PostgreSQL 用户可忽略编码)启动 Redis
env
在
backend目录打开终端,执行以下命令创建环境变量文件touch .env将初始化环境变量配置拷贝到环境变量文件中
cp .env.example .env按需修改配置文件
backend/core/conf.py和.env创建数据库表 三选一
自动创建直接启动后端项目
Alembic 迁移生成迁移文件
alembic revision --autogenerate执行迁移
alembic upgrade headSQL 脚本执行
backend/sql/目录下对应数据库的create_tables.sql脚本启动 celery worker, beat 和 flower 此步骤为可选,三个都可以不执行
在
backend目录打开终端,执行以下命令启动 celery 相关服务Workercelery -A app.task.celery worker -l infoBeatcelery -A app.task.celery beat -l infoFlowercelery -A app.task.celery flower --port=8555 --basic-auth=admin:123456初始化测试数据
执行
backend/sql/init_test_data.sql脚本初始化测试数据启动
在
backend目录打开终端,执行以下命令启动 FastAPI 服务fastapi dev main.py注
此项目默认使用 CLI 启动服务,为了方便本地调试,你仍然可以选择在 IDE 中右键运行
run.py文件打开浏览器访问:http://127.0.0.1:8000/docs
开发流程
提示
仅供参考,实际以个人开发习惯为准
单元测试
相关信息
通过 pytest 运行单元测试,项目内仅提供了非常简易的 demo,并不是完整单元测试,如需要,请自行编写
创建测试数据库
fba_test,选择 utf8mb4 编码,postgres 用户可忽略编码创建数据库表,执行
backend/sql/目录下对应数据库的create_tables.sql脚本初始化测试数据,执行
backend/sql/目录下对应数据库的init_test_data.sql脚本在项目根目录打开终端,执行以下单元测试命令
pytest -vs --disable-warnings



