flask - Flask-Restx:从 Swagger 设置默认路由?
问题描述
在加载我的招摇界面之前,我有一些数据库服务需要一些时间才能运行。所以,我想加载一个包含信息的 HTML 页面,然后将其重定向到 swagger 文档。
如何添加可以使用 flask-restx 加载的默认路由?
该代码将按照以下方式执行某些操作
app = Flask(__name__)
@app.route("/start")
def hello():
return render_template("loading_spinner.html")
api = Api(
app,
version="1.0",
title="Python API",
description="API with Flask-RestX",
)
nsHealthCheck = api.namespace(
"api/v1/healthcheck", description="Health check for the API"
)
在这个例子中,我想/start
在 swagger 界面之前加载。我怎样才能做到这一点?
解决方案
我希望我得到你的 q 权利。
在我理解之后,解决方案可能是:
- 一个用户界面问题
- 连同一个 Flask 问题
- 我的第一次尝试如果我必须做这样的事情我会做什么绝对只是 Geeks 在这里写的:https ://www.geeksforgeeks.org/how-to-show-page-loading-div-until-the-page- has-finished-loading/ 将此 html 加载图标与“turbo-flask”包结合使用。
这个想法很简单,当用户等待加载页面时(更准确地说,直到您可以加载 swagger 文档,html 加载器完成它的工作,然后 bummm,在这里您可以使用此处所写的动态更新:https: //blog.miguelgrinberg.com/post/dynamically-update-your-flask-web-pages-using-turbo-flask
这是 3pp:https ://github.com/miguelgrinberg/turbo-flask 所以最有趣的部分在这里:
import time
# ...
def update_load():
with app.app_context():
while True:
time.sleep(5)
turbo.push(turbo.replace(render_template('loadavg.html'), 'load'))
然后你可以调整默认的 API 文档渲染,因为它说:https ://flask-restx.readthedocs.io/en/latest/swagger.html#customization
from flask import Flask
from flask_restx import Api, apidoc
app = Flask(__name__)
api = Api(app)
@api.documentation
def custom_ui():
return apidoc.ui_for(api)
当然,您甚至可以修改招摇的网址......
- 如果第一个看起来是毁灭性的,那么:
另一种解决方案可能是通过修改招摇负载,在那里插入 SSE 类型的负载,我的意思是这个:https ://github.com/singingwolfboy/flask-sse 直到你发送你的工作状态在哪里,然后简单地最后更换页面。
可能是,我把这个简单的问题复杂化了。在这种情况下,我正在等待更优雅的解决方案。
推荐阅读
- javascript - 从另一个组件反应更新组件
- mysql - 根据复合主键的值读取增量数据
- android - iOS 和 Android:是否可以将视频直接保存到应用程序包中?
- php - 我可以在使用 Google API 创建日历时添加 URL 吗?
- python - Mrjob 步骤失败。怎么调试?
- sql - SQL Server 存储过程 - 我可以在一个过程中执行多项操作吗?
- python - 如何从python中的嵌套列表中提取和比较元素?
- java - SQLite Java:连接到加密数据库
- xml - xslt - 向所有匹配的 xml 子元素添加属性(不移动它们)
- node.js - Facebook 图形 API 批处理请求