快速开始
重要
请一字不落的认真对待此文档,并严格按照本文档的顺序启动项目,否则你有很大几率在启动过程中遇到各种问题
本地开发
后端
准备本地环境
- Python 3.10+
- Mysql 8.0+
- Redis 推荐最新稳定版
准备 Git 仓库
相关信息
提供两种方案,选择其中一种即可
拉取源代码仓库
此方式需要你删除拉取项目后根目录下的
.git
文件夹,之后上传到你指定的仓库即可,具体请自行查阅你要上传平台的行为准则git clone https://github.com/fastapi-practices/fastapi_best_architecture.git
拉取模板仓库
此项目支持创建模板仓库,意味着,你可以直接创建一个非 fork(独立无绑定的关系)的个人账户仓库,如果所示,进入此项目 GitHub 首页, 使用
use this template
按钮创建即可,创建完成之后,使用git clone
命令拉取你自己的仓库即可
安装依赖包
拉取项目到本地后,进入项目
backend
目录,执行以下命令pip install -r requirements.txt
创建一个数据库:
fba
,选择 utf8mb4 编码启动 Redis
env
在
backend
目录中,创建环境变量文件touch .env
将初始化环境变量配置拷贝到环境变量文件中
cp .env.example .env
按需修改配置文件
core/conf.py
和.env
相关信息
默认情况下,首次启动不需要修改
数据库迁移 alembic
生成迁移文件
alembic revision --autogenerate
执行迁移
alembic upgrade head
启动 celery worker, beat 和 flower (可选)
Celery 应用程序
celery -A app.task.celery worker -l info
定时任务
celery -A app.task.celery beat -l info
web 监控
celery -A app.task.celery flower --port=8555 --basic-auth=admin:123456
初始化测试数据
使用
backend/sql/init_test_data.sql
文件初始化测试数据启动 fastapi 服务
此项目采用 fastapi CLI 应用启动服务,当前,为了方便本地调试,你仍然可以选择使用 pycharm 右键运行
main.py
文件帮助
fastapi --help
开发模式
fastapi dev main.py
前端
准备本地环境
- Nodejs 14.0+
安装和启动
警告
目前它仅作为效果演示,而不是用于生产!
如果你不想前端依赖安装问题带来困扰,请务必使用
yarn
v1.x 版本你可以跳转 fastapi_best_architecture_ui 查看详情
开发流程
相关信息
仅供参考,实际以个人为准
定义数据库模型(model)
定义数据验证模型(schema)
定义视图(api)和路由(router)
编写业务(service)
编写数据库操作(crud)
单元测试
相关信息
通过 pytest
运行单元测试,项目内仅提供了非常简易的 demo,并不是完整单元测试,如需要,请自行编写
创建测试数据库
fba_test
,选择 utf8mb4 编码使用
backend/sql/create_tables.sql
文件创建数据库表使用
backend/sql/init_pytest_data.sql
文件初始化用于单元测试的测试数据进入
backend
目录,执行单元测试命令pytest -vs --disable-warnings