预加载烧瓶

时间:2017-06-07 09:47:50

标签: python flask

我正在使用flask来构建一个Web应用程序,python代码中有几个位,我需要加载一个csv文件。

with open('{}/src/public/file.csv'.format(current_app.config['PROJECT_ROOT']), 'r') as f:
    rows = csv.readlines(f)

然后我继续使用rows进行一些计算。

我的问题是每次用户触发请求时我都不想这样做。当我启动Flask时,我宁愿加载它,并且rows可以访问请求中的python代码。

当然,我的第一次尝试是将它从python函数中取出并将其放在我的views.py文件的开头,但这会引发应用程序上下文错误。

我如何实现我的目标?

注意:我不熟悉术语线程,堆栈,上下文(但愿意学习)。

1 个答案:

答案 0 :(得分:2)

我还没有看到你的整个代码,所以不确定它是否能提供帮助。但通常当你在烧瓶中遇到应用程序上下文问题时,你需要使用它:

from flask import Flask, current_app
# All other imports go here
app = Flask(__name__)
with app.app_context():
    with open('{}/src/public/file.csv'.format(current_app.config['PROJECT_ROOT']), 'r') as f:
    rows = csv.readlines(f)