我正在使用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文件的开头,但这会引发应用程序上下文错误。
我如何实现我的目标?
注意:我不熟悉术语线程,堆栈,上下文(但愿意学习)。
答案 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)