快速开始
820字约3分钟
重要
请一字不落的认真对待此文档,并严格按照本文档的顺序启动项目,否则你有很大几率在启动过程中遇到各种问题
本地开发
后端
准备本地环境
- 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 18.0+
- yarn 1.x
安装和启动
警告
目前它仅作为效果演示,而不是用于生产!
如果你不想前端依赖安装问题带来困扰,请务必使用
yarn
v1.x 版本安装依赖
yarn install
启动
yarn dev
注意
第一次启动可能会很慢,你可以查看此 Issue 查看详情
开发流程
相关信息
仅供参考,实际以个人为准
定义数据库模型(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