102 lines
2.5 KiB
Markdown
102 lines
2.5 KiB
Markdown
# FastAPI 项目
|
||
|
||
fastapi 源代码:https://github.com/tiangolo/fastapi
|
||
|
||
fastapi 中文文档:https://fastapi.tiangolo.com/zh/
|
||
|
||
fastapi 更新说明:https://fastapi.tiangolo.com/zh/release-notes/
|
||
|
||
pydantic 官方文档:https://pydantic-docs.helpmanual.io/
|
||
|
||
pydantic 数据模型代码生成器官方文档 (Json -> Pydantic):https://koxudaxi.github.io/datamodel-code-generator/
|
||
|
||
SQLAlchemy-Utils:https://sqlalchemy-utils.readthedocs.io/en/latest/
|
||
|
||
|
||
## 项目结构
|
||
|
||
使用的是仿照 Django 项目结构:
|
||
|
||
- alembic:数据库迁移配置目录
|
||
- application:主项目配置目录,也存放了主路由文件
|
||
- settings.py:主项目配置文件
|
||
- urls.py:主路由文件
|
||
- apps:项目的app存放目录
|
||
- core:核心文件目录
|
||
- database.py:关系型数据库核心配置
|
||
- exception.py:异常处理
|
||
- logger:日志处理核心配置
|
||
- middleware.py:中间件核心配置
|
||
- db:ORM模型基类
|
||
- logs:日志目录
|
||
- static:静态资源存放目录
|
||
- tests:测试接口文件目录
|
||
- utils:封装的一些工具类目录
|
||
- main.py:主程序入口文件
|
||
- alembic.ini:数据库迁移配置文件
|
||
|
||
## 开发环境
|
||
|
||
开发语言:Python 3.8
|
||
|
||
开发框架:Fastapi 0.73.0
|
||
|
||
## 使用
|
||
|
||
```
|
||
# 安装依赖库
|
||
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
|
||
|
||
# 第三方源:
|
||
|
||
1. 阿里源: https://mirrors.aliyun.com/pypi/simple/
|
||
```
|
||
|
||
### 运行启动
|
||
|
||
```
|
||
# 命令行运行(开发模式)
|
||
uvicorn main:app --host=127.0.0.1 --port=9000 --reload
|
||
|
||
# 或者直接运行main文件
|
||
python main.py
|
||
```
|
||
|
||
在线文档地址(在配置文件里面设置路径或者关闭)
|
||
|
||
```
|
||
http://127.0.0.1:9000/docs
|
||
```
|
||
|
||
Git更新ignore文件直接修改gitignore是不会生效的,需要先去掉已经托管的文件,修改完成之后再重新添加并提交。
|
||
```
|
||
第一步:
|
||
git rm -r --cached .
|
||
去掉已经托管的文件
|
||
|
||
第二步:
|
||
修改自己的igonre文件内容
|
||
|
||
第三步:
|
||
git add .
|
||
git commit -m "clear cached"
|
||
```
|
||
|
||
执行数据库迁移命令(终端执行)
|
||
|
||
```python
|
||
# 初次生成迁移文件
|
||
alembic revision -m "生成迁移文件"
|
||
|
||
# 通过该命令可以将模型迁移到数据库
|
||
alembic upgrade head
|
||
|
||
# 如果有更新,则可以使用这个命令再次生成迁移文件,初次也可以使用
|
||
alembic revision --autogenerate -m "update"
|
||
# --autogenerate:自动将当前模型的修改,生成迁移脚本。
|
||
|
||
# 通过该命令可以将模型迁移到数据库
|
||
alembic upgrade head
|
||
```
|
||
|
||
生成迁移文件后,会在alembic迁移目录中的version目录中多个迁移文件 |