栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

FastApi框架运行以及交互式接口文档访问错误的问题解决

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

FastApi框架运行以及交互式接口文档访问错误的问题解决

fastapi安装启动

pip install fastapi[all]

创建一个 main.py 文件并写入以下内容:

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}

运行
通过以下命令运行服务器:

uvicorn main:app --reload

使用浏览器访问 http://127.0.0.1:8000
你将会看到如下 JSON 响应:

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

交互式 API 文档
现在访问 http://127.0.0.1:8000/docs
发现打开是空白页面,且pycharm中报错,提示访问不到静态资源。
因为是国外的静态资源,所以我们要下载下来存到本地,从本地启。

swagger-ui下载地址:
https://github.com/swagger-api/swagger-ui/tree/master/dist
下载内容:

redoc下载地址:
https://github.com/Redocly/redoc
下载内容:

百度云盘下载:
链接:https://pan.baidu.com/s/1h67KjIXaHYEqsxOrCjC45Q
提取码:exht

下载资源后,更改python安装路径下的docs.py配置文件
路径:
python安装路径Libsite-packagesfastapiopenapi


修改内容:

如果路径一致,可以直接复制下面代码

 	swagger_js_url: str = "/static/swagger-ui/swagger-ui-bundle.js",
    swagger_css_url: str = "/static/swagger-ui/swagger-ui.css",
    swagger_favicon_url: str = "/static/swagger-ui/img/favicon.png",


如果路径一致,可以直接复制下面代码

    redoc_js_url: str = "/static/redoc/bundles/redoc.standalone.js",
    redoc_favicon_url: str = "/static/redoc/img/favicon.png",

然后在main.py文件中加上如下代码:

导入StaticFiles库:

from fastapi.staticfiles import StaticFiles

寻找资源路径添加:

app.mount("/static", StaticFiles(directory="static"), name="static")

再以uvicorn main:app --reload命令启动后
输入127.0.0.1:8000/docs展示如下

输入127.0.0.1:8000/redoc展示如下

希望能帮助解决各位遇到的问题。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/938797.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号