在函数内部创建应用程序时,Flask访问配置变量

时间:2016-11-05 01:08:44

标签: python python-2.7 flask

我的Flask应用程序有以下配置:

文件结构:

run.py
app/
  __init__.py
  views/
    main/
      __init__.py
      main.py
  ...

__初始化__。PY

def createpp():
  app = Flask(__name__)
  ...
  return app

main.py

...

key = app.config['KEY']
hashingID = hash(key)

@main.route('/', methods=['POST', 'GET'])
def main():
  ...
  return render_template('main/main.html')

...

如您所见,我想从 main.py 访问app.config['KEY']。问题是,由于app是在create_app()内部配置的,我不能简单地导入它。

hashingID始终是常量并且在许多不同的路由中使用,否则我只需要放

key = app.config['KEY']
hashingID = hash(key)

在路线内。

有没有解决方法,以便我可以从函数内部生成的应用程序实例访问配置变量?感谢。

1 个答案:

答案 0 :(得分:0)

这取决于你想要做什么。

您可以看到in this project我们在Flask函数中创建create_app实例,然后从同一函数将app变量传递给许多其他函数执行我们的各种配置任务。

create_app函数的返回值最终分配给模块中的顶级app变量,然后可以根据需要导入其他模块(如{{3 }})。