# fastapi-imooc-jack **Repository Path**: lvzhenchao/fastapi-imooc-jack ## Basic Information - **Project Name**: fastapi-imooc-jack - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-29 - **Last Updated**: 2025-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # fastapi-imooc-jack ## 1、基础概念 - Pydantic:一个基于python类型提示来定义数据验证,序列化和文档(使用JSON模式)库 - Starlette:是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理想选择 - ASGI & WSGI 都是一种规范 - Uvicorn/Hypercorn/Daphne:都是ASGI的实现,都是包,一种服务类似Nginx服务【异步服务】 - uWSGI/Gunicorn:都是WSGI的实现,都是包,【同步服务】 ## 2、环境搭建 - 进入到根目录:执行、virtualenv venv - 进入到Scripts,根据相应的系统环境激活虚拟环境 ## 3、pydantic基础教程 - 基本模型:BaseModel - 递归模型 - 字段的类型和校验 ### 3-1、基础知识点:from typing import List,Optional - typing 模块提供的 List 和 Optional 是用于类型提示(Type Hints)的工具,主要作用是增强代码的可读性和静态类型检查能力 - List:用于标注列表元素的类型;原生的list无法指定内部元素的类型;List[str] - Optional:用于标注可选参数或可能为 None 的值;Optional[X] 等价于 X | None,可以是x也可以是None ## 4、请求参数和验证 - 启动命令:uvicorn demo-1-params:app --reload ## 5、参数 【demo01】 ### 5-1、路径参数和数据解析,验证 - 接口路由 - 路径参数:URL中传递的参数/符号后面的 - 定义枚举类型 ### 5-2、查询参数和字符串验证 - ?符号之后的参数 ### 5-3、body参数 ### 5-4、cookie和header参数 ## 6、响应【demo02】 - 响应模型 - 响应状态码和快捷属性 ### 6-1、表单类 - 用form类需要pip install python-multipart ### 6-2、UploadFile的优势 - 1、文件存储在内存中,使用的内存达到阈值后,将被保存在磁盘中 - 2、适合于图片,视频大文件 - 3、可以获取上传的元数据,如文件名,创建时间等 - 4、有文件对象的异步接口 - 5、上传的文件是python文件对象,可以使用write()、read()、seek()、close() ### 6-3、静态文件的配置【静态文件配置】run.py ### 6-3、错误处理 ## 7、依赖注入系统 - 依赖注入:指在编程中,为保证代码成功运行,先导入或声明其所需要的"依赖",如子函数、数据库等 - 优势:提高代码的复用率、共享数据的链接、增强安全、热证和角色管理 - 兼容性:所有关系型数据库、第三方的包和API、认证和授权系统、响应数据注入系统 ### 7-1、创建导入声明依赖【demo03】 - 公共函数作为依赖 [注意引用方法中的Depends] - 类作为依赖项 - 子依赖【嵌套依赖】 - 路径依赖 - 框架全局依赖 ## 8、安全、认证和授权模式 - 授权码授权模式 - 隐式授权模式 - *密码授权模式【用户通过账号密码->授权服务器->生成Token->用户携带Token执行相关操作】 - 客户端凭证授权模式 ### 8-1、OAuth2PasswordBearer - 是接收URL作为参数的一个类:客户端会向该URL发送username和password参数,然后得到一个Token值 - 并不会创建相应的URL路径操作,只是指明客户端用来请求Token的URL地址 - 请求到来的时候,FastAPI会检查请求的Auth头信息,如果没有找到Auth头信息,或者头信息的内容不是Bearer Token,它会返回401状态码