python fastapi模块使用

FastAPI 是一个现代、快速(高性能)、基于标准 Python 类型提示的 Web 框架。它是一个用于构建 API 的异步框架,基于 Starlette 和 Pydantic 构建。以下是使用 FastAPI 的一些基本步骤:

  1. 安装 FastAPI 和 Uvicorn

    pip install fastapi uvicorn
  2. 创建一个 FastAPI 应用
    创建一个 Python 文件,比如 main.py,并添加以下内容:

    from fastapi import FastAPI
    
    app = FastAPI()
    
    @app.get("/")
    def read_root():
        return {"Hello": "World"}
  3. 运行应用
    在终端中运行以下命令启动 FastAPI 应用:

    uvicorn main:app --reload
    # 指定ip port
    uvicorn main:app --reload --port 8000 --host 0.0.0.0

    这将启动一个开发服务器,并在 http://127.0.0.1:8000/ 上运行你的应用,当然可以使用 `python main.py` 这样的方式启动 FastAPI 应用。实际上,`uvicorn` 只是 FastAPI 推荐的 ASGI(Asynchronous Server Gateway Interface)服务器之一,但你也可以使用其他 ASGI 服务器,或者在需要时选择同步的服务器。

  4. 访问 API 文档
    FastAPI 自动生成交互式 API 文档,可以通过浏览器访问,地址是 http://127.0.0.1:8000/docs。

  5. 定义路径参数
    FastAPI 使用标准 Python 类型提示来定义路径参数。例如:

    @app.get("/items/{item_id}")
    def read_item(item_id: int, q: str = None):
        return {"item_id": item_id, "q": q}

    在上述例子中,item_id 是一个路径参数,而 q 是一个查询参数。

  6. 其他接口:

    # GET 请求
    @app.get("/")
    def read_root():
        return {"message": "Hello, World!"}
    
    # POST 请求
    @app.post("/items/")
    def create_item(item: dict):
        return {"item": item}
    
    # PUT 请求
    @app.put("/items/{item_id}")
    def update_item(item_id: int, item: dict):
        return {"item_id": item_id, "updated_item": item}
    
    # DELETE 请求
    @app.delete("/items/{item_id}")
    def delete_item(item_id: int):
        return {"message": f"Item {item_id} has been deleted"}
  7. 请求体和响应模型
    FastAPI 支持使用 Pydantic 模型来定义请求体和响应模型。例如:

    from pydantic import BaseModel
    
    class Item(BaseModel):
        name: str
        description: str = None
        price: float
        tax: float = None
    
    @app.post("/items/")
    def create_item(item: Item):
        return item

    上述例子中,Item 是一个 Pydantic 模型,用于验证请求体,而 create_item 函数接受一个 Item 对象作为参数。

这只是 FastAPI 的基础使用方式,它还有很多其他功能,如依赖注入、安全性、验证、WebSocket 支持等。你可以查阅 FastAPI 的官方文档以获取更多详细信息。

你可能感兴趣的:(python开发笔记,python,开发语言)