首页 > Python > 通过Python FastAPI开发一个快速的 Web API 项目

通过Python FastAPI开发一个快速的 Web API 项目

Python 2025-02-07
FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,专为在 Python 中构建 RESTful API 而设计。

FastAPI 使用 Python 3.8+ 并基于标准的 Python 类型提示。

FastAPI 建立在 Starlette 和 Pydantic 之上,利用类型提示进行数据处理,并自动生成API文档。

FastAPI 于 2018 年 12 月 5 日发布第一版本,以其易用性、速度和稳健性在开发者中间迅速流行起来。

FastAPI 支持异步编程,可在生产环境中运行。

php编码可以通过与FastAPI 搭建的web api通讯,实现python与php之间的调用。也就是php可以通过FastAPI 搭建的web api调用Python代码。

FastAPI 安装
FastAPI 依赖 Python 3.8 及更高版本。

安装 FastAPI 很简单,这里我们使用 pip 命令来安装。

pip install fastapi

另外我们还需要一个 ASGI 服务器,生产环境可以使用 Uvicorn 或者 Hypercorn:
pip install "uvicorn[standard]"

这样我们就安装完成了。

运行第一个 FastAPI 应用
创建一个名为 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}

注意,这里引入了from typing import Union。

请求头和 Cookie

使用 Header 和 Cookie 类型注解获取请求头和 Cookie 数据。

实例
from fastapi import Header, Cookie
from fastapi import FastAPI

app = FastAPI()

@app.get("/items/")
def read_item(user_agent: str = Header(None), session_token: str = Cookie(None)):
    return {"User-Agent": user_agent, "Session-Token": session_token}



热门标签: shell_exec   AI   autosub3   外部js   浏览器   备份   倒计时   自动化