进到 py 文件所属目录的命令行
main:main.py 文件(一个 Python「模块」)
app:在 main.py 文件中通过 app = FastAPI() 创建的对象
--reload:让服务器在更新代码后自动重新启动,仅在开发时使用该选项

我这里截图的名字换了哈
FastAPi 使用 API 的 OpenAPI 标准为所有 API 生成 schema
是对事物的一种定义或描述
它并非具体的实现代码,而只是抽象的描述
后面会详说
OpenAPI 是一种规定如何定义 API Schema 的规范
定义的 OpenAPI Schema 将包括 API 路径,以及它们可能使用的参数等等
比如:这个 API 的作用是什么,需要必传哪些参数,请求方法是什么
指的是某些数据比如 JSON 的结构
它可以表示 JSON 的属性及其具有的数据类型
比如:某个属性的数据类型是什么,有没有默认值,是不是必填,作用是什么
OpenAPI 会为 API 定义 API Schema,一般会包括 API 发送和接收的数据的定义,比如:发送的数据的类型、是否必填
这些定义会以 JSON数据格式展示出来,所以都会称为 JSON Schema
原始的 OpenAPI Schema,其实它只是一个自动生成的包含了所有 API 描述的 JSON 数据结构
将上面最简单的栗子代码进行拆开详解
FastAPI 是一个为 API 提供了所有功能的 Python 类,必写就对了
FastAPI 是直接从 Starlette继承的类,可以通过 FastAPI 使用所有的 Starlette 的功能
app 就是 FastAPI 类的一个实例对象啦
重点:app 将是创建所有 API 的主要交互对象
要点:uvicorn 执行命令时也会用到 app
指的是 URL 中从第一个 <code>/</code> 起的后半部分,即常说的 path
比如:https://example.com/items/foo 的路径就是/items/foo
路径也称为:端点、路由
就是 HTTP 请求方法
POST
GET
PUT
DELETE
OPTIONS
HEAD
PATCH
TRACE
在 HTTP 协议中,可以使用以上的其中一种(或多种)「方法」与每个路径进行通信
通常使用:
POST:创建数据
GET:读取数据
PUT:更新数据
DELETE:删除数据
有两点含义
请求路径为 /
使用 get 请求
其他请求方法的装饰器
@app.post()
@app.put()
@app.delete()
@app.options()
@app.head()
@app.patch()
@app.trace()
这就是一个普通的 Python 函数
每当 FastAPI 接收一个使用 <code>GET</code> 方法访问路径为 / 的请求时这个函数会被调用
在这个例子中,它是一个 async 函数(异步处理函数,后面会细说)
可以返回一个 dict、list,也可以是 str、int 单个值
还可以返回 Pydantic 模型(后面详解)
还可以是其他会自动转换为 JSON 的对象和模型(包括 ORM 对象等)
编写一个最简单的 FastAPI 应用程序五部曲
导入 FastAPI
创建一个 app 实例
编写一个路径操作装饰器,如 @app.get("/")
编写一个路径操作函数,如 def root(): ...
运行开发服务器,如 uvicorn main:app --reload