# test_fastapi **Repository Path**: runler/test_fastapi ## Basic Information - **Project Name**: test_fastapi - **Description**: 1 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-10-22 - **Last Updated**: 2024-10-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # [FastAPI教程](https://space.bilibili.com/3461574561892826/channel/collectiondetail?sid=2056242&spm_id_from=333.788.0.0) B站 [跟峰哥学编程](https://space.bilibili.com/3461574561892826) [长风破浪会有时Plus](https://space.bilibili.com/3629556) [玩代码的预测师](https://space.bilibili.com/166619521) FastAPI教程 - 1.Hello FastAPI 官方文档 [https://fastapi.tiangolo.com/zh/](https://fastapi.tiangolo.com/zh/) ## 一、环境按照 python -m venv .venv pip install -r requirements.txt ```javascript fastapi[all]==0.115.3 uvicorn[standard]==0.32.0 aioredis>=2.0.1 tortoise-orm==0.21.7 aiomysql==0.2.0 fast-captcha==0.3.2 setuptools==75.2.0 ``` setuptools==75.2.0 # 解决No module named 'distutils'错误 python 3.12 后,废弃了 distutils 包,需要安装 setuptools 包 duplicate base class TimeoutError 错误,aioredis2.0.1 \exceptions.py 错误, 删除 asyncio.TimeoutError 临时解决,等待版本更新; uvicorn main:app --reload --port 8000 或 fastapi dev main.py __main__ uvicorn.run(app="main:app", host="127.0.0.1", port=8000, reload=True) FastAPI教程 - 2.路径参数 FastAPI教程 - 3.查询参数 FastAPI教程 - 4.请求体 FastAPI教程 - 5.参数验证 FastAPI教程 - 6.深入请求体 FastAPI教程 - 7.示例数据 FastAPI教程 - 8.Cookie与Header参数 FastAPI教程 - 9.响应模型 FastAPI教程 - 10.状态码与异常处理 FastAPI教程 - 11.依赖注入 FastAPI教程 - 12.API的身份认证 FastAPI教程 - 13.连接数据库 FastAPI教程 - 14.实现修改与删除 FastAPI教程 - 15.后台任务 FastAPI教程 - 16.元数据与文档URL 02 - 文档界面加载慢 静态文件修改到本地,版本错误 换 Google浏览器可以 或 浏览器清除缓存 文档 登录按钮 03-2 - 通过Request对象拿参数 09-1 中间件的简单演示 15. 初识权限控制:Security的使用 装饰器 生命周期 文件上传 图片验证码 ``` pip install fast-captcha 或 simpel_captcha 目前只支持python 3.11 ``` ```python from fastapi import FastAPI from fastapi.responses import StreamingResponse from fast_captcha import img_captcha app = FastAPI() @app.get('/captcha', summary='captcha', name='captcha') def get_captcha(): img, text = img_captcha() return StreamingResponse(content=img, media_type='image/jpeg') ``` ## tortoise-orm 新版BaseModel Field参数区别 alias 前 后端名字都改 与 serialization_alias 只改返回前端的名字 @validator -> @field_validator from_orm -》model_validate dict ()-》model_dump()