FastAPI 基础学习(二)开发环境安装

作者:麦克煎蛋   出处:https://www.cnblogs.com/mazhiyong/ 转载请保留这段声明,谢谢!

 

一、依赖项

Python 3.6+

FastAPI 站在这些巨人的肩膀上

可选依赖项:

Pydantic需要:

Starlette需要:

FastAPI / Starlette需要:

  • uvicorn - 加载和服务程序需要.
  • orjson - ORJSONResponse 需要.

你可以通过以下命令安装以上所有安装包:

 pip install fastapi[all]

二、安装

1、pip install fastapi

2、我们需要一个ASGI服务器,可以使用 Uvicorn 或 Hypercorn

     pip install uvicorn

三、示例

1、新建文件main.py

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: str = None):
    return {"item_id": item_id, "q": q}

或者使用async定义函数:

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}


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

2、运行

uvicorn main:app --reload

输出结果:
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.

关于命令的解释:

  • main: 文件 main.py (Python "模块").
  • app:  main.py 创建的实例 app = FastAPI().
  • --reload: 代码有改动时服务会自动重启(仅适用于开发环境)

3、接口访问

在浏览器中访问地址:http://127.0.0.1:8000/items/5?q=somequery

我们可以看到响应结果:

{"item_id": 5, "q": "somequery"}

4、我们实际上实现了具有以下功能的一个API:

  • 接收以下路径的HTTP请求: / 和 /items/{item_id}.
  • 这两个路径都接收GET请求.
  • 路径 /items/{item_id} 具有一个路径参数 item_id 并且类型必须为 int.
  • 路径 /items/{item_id} 具有一个可选的查询参数 q 并且类型必须为 str. 

四、交互式API文档

我们访问以下两个地址,可获取自动生成的交互式API文档,并且当代码改动时文档会自动更新。方便我们的开发调试。

1、http://127.0.0.1:8000/docs (基于 Swagger UI)

2、http://127.0.0.1:8000/redoc (基于 ReDoc)

 

posted on 2020-04-30 14:35  麦克煎蛋  阅读(3995)  评论(0编辑  收藏  举报