FastAPI 的小demo
本项目演示站点【账号 admin / 密码 a12345678 】
git clone https://gitee.com/nhnhwsnh/fastapi_demo.git
本项目使用的是 python3.10,推荐也用这个版本
其他版本,可能需要您自行处理一些版本间的差异问题(见本文第六部分)
过程略
cd fastapi_demo
pip install -r requirements.txt
如果不习惯使用 docker 也可以自己手动搞定这些
版本要求:mysql 8.0.27 redis 6.2.7
其他版本,没测试过,不保证能跑起来。
docker-compose -f docker-compose.local.yml up -d
见下面的 aerich 使用方法
deploy/mysql 目录下有一些初始的数据,可能对你有帮助
python manage.py run server
python manage.py --help
启动服务,默认 localhost:8000
python manage.py run server
如需修改主机或端口
python manage.py run server --host 127.0.0.1 --port 8888
此命令不会对用户名密码的格式进行检验
python manage.py user createroot --help
快速生成 app,不用重复的写CRUD
当前处于测试阶段 具体用法 -》 传送门
- 生成查询过滤的模型。
- 生成内容请看: backend/schemas/filter_for_dev.py
- 使用方法请看: backend/routers/dev.py
- 演示接口:GET /api/v1/test/start/filter
文档: 传送门
省流:传送门
manage.py
->from backend.commands import app
backend/commands/run.py
->app='backend.main:app',
- 。。。
- 在
backend/models
目录下新增相应的文件,并将其加入到__init__.py
中 - 使用 aerich 迁移数据库
simpel_captcha 要求
Python >=3.9, <4.0
如果你实在无法满足
python >= 3.9
, 可以考虑换用 fast-captcha
fast-captcha
对python
的要求低一点(Python >=3.7, <4.0
)这两个包的功能类似,使用方法也基本差不多!
python3.10 可以使用
|
来表示联合类型。例如
phone: str | int
表示phone
可以是str
类型,也可以是int
类型
phone: str | int
等价于phone: Union[str, int]
如果你实在不想解决这个问题,把
-> str | None
删除了也可以!
为了方便开发阶段的调试,我把所有日志器的等级都设置到了
DEBUG
相应的设置文件在
backend/config/logging.dev.json
可以根据需要,自行修改配置
不会。
backend/routers/__init__.py
中第 21-22 行,dev.py中的接口,只有在settings.enable_test_router==True
时才有效项目上线时,只要在相应的 env 文件中加入
ENABLE_TEST_ROUTER=false
,这些接口就不会生效了这个文件里面写的接口,只是一些小例子,直接删除文件+相应的代码可以彻底解决这个问题!
请阅读
pydantic
的文档中关于Settings management
的内容 -> 传送门
只是为了配合
drone
, 快速地部署及更新演示站点。正式的项目中,绝对不可能上传这些文件的。
见上一个问题。
backend/routers/dev.py
中有示例。
这只是我自己想偷懒的时候,写的几行工具性质的临时代码,看不懂就删除了吧!
这只是选择问题,您也可以把它作为一个类方法放到User
模型中。verify_password
同理。
请自行百度
python 泛型
首先很感谢您对我的支持!
但是,此仓库是个镜像仓库,不接受pr,有事情可以提issue 或者 群内交流!