项目是基于FastAPI 学习使用FastAPI框架,并搭建一个项目模板,方便后续其他新项目可以直接使用,但愿该项目能为想学习、想使用FastApi的开发人员提供帮助。
@提示: 由于本人工作中常用的语言是PHP和Go,所以框架中的编码规范,并没有严格按照Python官方指定的规范,特别是变量名和函数名~
@注: 下面目录仅供参考,在整个项目未开发结束,会有部分调整。
├── app
│ ├── __init__.py
│ ├── config # 配置相关
│ │ └── __init__.py
│ ├── constant # 常量相关
│ │ └── __init__.py
│ ├── dao # 封装查询数据的方法
│ │ ├── models # 数据模型文件,和表结构对应
│ │ └── __init__.py
│ ├── dependencies # 封装被依赖函数
│ │ └── __init__.py
│ ├── errors # 异常处理
│ │ └── __init__.py
│ ├── middleware # 中间件
│ │ └── __init__.py
│ ├── router # 路由也可以理解controller
│ │ ├── __init__.py
│ │ ├── admin_router.py # 后台接口
│ │ └── demo_router.py # 演示接口
│ ├── types # 声明入参和出参对应的Pydantic模型
│ │ ├── __init__.py
│ │ ├── request # 入参模型
│ │ └── response # 出参模型
│ ├── service # 就具体业务实现逻辑
│ │ ├── __init__.py
│ └── utils # 工具类
│ ├── __init__.py
│ └── str_util.py
├── bin # 相关脚本
│ └── genmodels.sh # 生成model脚本
├── logs # 日志目录
│ └── app.log
├── static # 静态资源目录
│ ├── a.txt
│ └── test.jpg
├── requirements.txt #依赖文件
├── README.md #项目介绍
├── main.py # 入口文件
└── tests # 单元测试目录
├── __init__.py
└── local_test.py
➜ pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 启动: 可指定 环境配置文件test(.env.test)、prod(.env.prod)
➜ ./server.sh start --env=test
准备启动应用程序...
运行脚本: python main.py --env=test
获取配置文件: .env.test
打印项目配置: ...
INFO: Started server process [36836]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:8082 (Press CTRL+C to quit)
# 关闭
➜ ./server.sh stop
# 重启
➜ ./server.sh restart
持续学习开发中...