每次访问Flask页面时如何运行脚本

问题描述 投票:0回答:1

我有一个Flask应用程序,它需要另一个Python文件中的数据(每次我访问/ result-var时-我希望执行[[ANOTHER_FILE,以将更新的variable_with_data返回给模板。如果我正在使用subprocess.call-我无权访问外部变量。如果我使用import-ANOTHER_FILE仅运行一次(要再次运行,我必须重新启动Flask应用程序)。但是每次从浏览器访问/ result-var时,我都需要这个variable_with_data

@application.route('/result-var') def result_var(): # subprocess.call("ANOTHER_FILE.py", shell = True) from ANOTHER_FILE import output_in_var variable_with_data = output_in_var return render_template('result.html', variable_with_data=variable_with_data)
请提供一个想法,我有什么选择。 TIA!
python flask
1个回答
0
投票
因此,假设您有ANOTHER_FILE,其中包含类似以下内容:

data = read_data() result = process_data(data) output_in_var = prepare_output(result)

然后您可以将所有内容包装到一个函数中,

def produces_output_in_var():
    data = read_data() 
    result = process_data(data) 
    output_in_var = prepare_output(result)

然后调用该函数以显式运行代码(而不是在导入时隐式运行代码:]

from ANOTHER_FILE import produces_output_in_var

@application.route('/result-var')
def result_var():
    variable_with_data = produces_output_in_var()
    return render_template('result.html', variable_with_data=variable_with_data)

另请参见:Why is Python running my module when I import it, and how do I stop it?和关于此的python文档可能会有所帮助,但是它们有点技术性:https://docs.python.org/3/reference/import.html

© www.soinside.com 2019 - 2024. All rights reserved.