Python从另一个全局对象构造一个可变的全局对象



我有main.pyapp.pyapp.py包含返回app对象的create_app()。CCD_ 6调用CCD_。我必须在main.py中构造一个可变的全局对象。此全局对象将app作为输入参数。在python中,这对我来说似乎很复杂。当应用程序启动时,我如何可能实现这种全局对象构造?

具体来说,我使用的是flask_oidc,需要在main.py中构造一个oidc = OpenIDConnect(app),并使oidc对象在其他controller.py文件中可用。此oidc对象将存储用户信息,并验证用户是否已通过身份验证。

任何建议和见解都将不胜感激。

您可以创建一个模块,在应用程序开始时初始化oidc对象

helper.py

oidc = None # global instance
def init_oidc(app):
# initalise the oidc here and assign to the global variable
global oidc
oidc = OpenIDConnect(app)
return oidc

main.py

import init_oidc from helper

app = create_app()
# init only once at the start of the application
oidc = init_oidc(app)

在其他控制器文件中sample_controller.py

import oidc from helper
# use the same oidc here

另一种选择是创建一个带有属性oidc的singleton类,如果您需要其他方法和oidc,这将非常有用

相关内容

  • 没有找到相关文章

最新更新