FastApi学习开发环境安装

Posted 麦克煎蛋

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastApi学习开发环境安装相关的知识,希望对你有一定的参考价值。

一、依赖项

Python 3.6+

FastAPI 站在这些巨人的肩膀上

二、安装

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)

以上是关于FastApi学习开发环境安装的主要内容,如果未能解决你的问题,请参考以下文章

API接口开发其实特简单,Python FastApi Web 框架教程来了

FastAPI学习-1.环境准备与基础入门

FastAPI(七十七)实战开发《在线课程学习系统》接口开发-- 课程编辑和查看评论

无法在 Spyder 中执行 FastAPI 客户端代码

fastapi nodejs 性能比较

FastAPI(七十五)实战开发《在线课程学习系统》接口开发-- 创建课程