第一个 FastAPI 应用

作者: adm 分类: python 发布时间: 2024-11-15

创建一个名为 main.py 的文件,添加以下代码:

实例
from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)
def read_root():
return {“Hello”: “World”}
在命令行中运行以下命令以启动应用:

uvicorn main:app –reload
现在,打开浏览器并访问 http://127.0.0.1:8000,你应该能够看到 FastAPI 自动生成的交互式文档,并在根路径 (“/”) 返回的 JSON 响应。

接下来我们来丰富下代码功能,并做具体说明。

以下的 FastAPI 应用,使用了两个路由操作(/ 和 /items/{item_id}):

实例
from typing import Union

from fastapi import FastAPI

app = FastAPI()

@app.get(“/”)
def read_root():
return {“Hello”: “World”}

@app.get(“/items/{item_id}”)
def read_item(item_id: int, q: Union[str, None] = None):
return {“item_id”: item_id, “q”: q}
代码拆解分析
1、导入必要的模块和类:

from typing import Union
from fastapi import FastAPI
以上实例导入了 Union 类型,用于支持多种数据类型的参数注解。

2、创建 FastAPI 实例:

app = FastAPI()
在这一步,创建了一个 FastAPI 应用的实例,它将用于定义和管理应用的各个组件,包括路由。

FastAPI 是 FastAPI 框架的主要类。

3、定义根路径 / 的路由操作:

@app.get(“/”)
def read_root():
return {“Hello”: “World”}
这个路由操作使用了 @app.get(“/”) 装饰器,表示当用户通过 HTTP GET 请求访问根路径时,将执行 read_root 函数。函数返回一个包含 {“Hello”: “World”} 的字典,这个字典会被 FastAPI 自动转换为 JSON 格式并返回给用户。

4、定义带路径参数和查询参数的路由操作:

@app.get(“/items/{item_id}”)
def read_item(item_id: int, q: Union[str, None] = None):
return {“item_id”: item_id, “q”: q}
这个路由操作使用了 @app.get(“/items/{item_id}”) 装饰器,表示当用户通过 HTTP GET 请求访问 /items/{item_id} 路径时,将执行 read_item 函数。

函数接受两个参数:

item_id –是路径参数,指定为整数类型。
q — 是查询参数,指定为字符串类型或空(None)。
函数返回一个字典,包含传入的 item_id 和 q 参数。

q 参数通过 Union[str, None] 表示可以是字符串类型或空,这样就允许在请求中不提供 q 参数。

使用浏览器访问 http://127.0.0.1:8000/items/5?q=yinzan,你将会看到如下 JSON 响应:

{“item_id”: 5, “q”: “yinzan”}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!