如何将变量传递到openapi python烧瓶控制器



我在一个更大的python项目中使用生成的openapi python flask服务器(由openapi-generator-cli-4.2.3.jar生成(。其中一个openapi控制器需要访问我的数据库。另一个控制器需要一个对象列表。这两个信息都已被python项目使用。

我的想法是将所有需要的信息作为变量传递到main方法(在__main__.py中(。但是我如何将变量传递到控制器或其中的函数?还有其他(更好的(方法吗?

openapi主方法:

def main(): # add: db_connection:dict, my_object:list
app = connexion.App(__name__, specification_dir='./openapi/')
app.app.json_encoder = encoder.JSONEncoder
app.add_api('openapi.yaml',
arguments={'title': 'My API'},
pythonic_params=True)
app.run(port=8080)

谢谢你的帮助!

我在github上发现了以下问题,但没有实际的解决方案:https://github.com/zalando/connexion/issues/516

您应该在de main函数之外安装变量:

db = SQLAlchemy()
ma = Marshmallow()
logger = factory_logger()
def init_api():
app = connexion.App(__name__, specification_dir="./swagger/")
app.add_api("swagger.yaml", arguments={"title": "files"})
app.app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db.init_app(app.app)
ma.init_app(app.app)
app.app.before_request(before_request)
return app

并将这些变量导入到您和要使用的位置:

from my_server import db

from my_server import logger

相关内容

  • 没有找到相关文章

最新更新