如何使用 Flask 运行 Connextion/Flask 应用程序?

art*_*ton 1 python flask python-3.x swagger connexion

我们有一个现有的烧瓶应用程序,我们想将其转移到连接。该应用程序是否仍然可以使用烧瓶运行,例如“烧瓶运行”。我们在希望继续使用的 cli 中使用了“管理”插件。

我们尝试修改应用工厂方法以使用连接烧瓶应用。使用“运行烧瓶”我们得到一个错误,“应用程序”不是烧瓶应用程序。

    app = connexion.FlaskApp(__name__.split('.')[0])
    app.add_api('some_api.yml')
    return app
Run Code Online (Sandbox Code Playgroud)

还尝试创建这两个应用程序。

    app = Flask(__name__.split('.')[0])
    connexion_app = connexion.FlaskApp(__name__.split('.')[0])
    connexion_app.add_api('./api/resources/reload_spec.yml')
    return app
Run Code Online (Sandbox Code Playgroud)

使用第一种方法运行“flask run”会出现“app”不是有效的烧瓶应用程序的错误:RuntimeError: app is not a valid flask.app.Flask app instance

第二种方法似乎没有生成 UI,这并不奇怪,因为 connexion_app 没有运行。

这甚至可能吗?

art*_*ton 5

    # factory.py

    # connexion app
    app = connexion.FlaskApp(__name__.split('.')[0])
    app.add_api('some_api.yml')

    # flask app
    app = app.app
    # flask-specific code
    return app
Run Code Online (Sandbox Code Playgroud)

这适用于烧瓶运行,并显示 swagger 文档。

$ flask run
 * Serving Flask app "app/app.py"
<snip>
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)`

Run Code Online (Sandbox Code Playgroud)