我有一个烧瓶应用,可以使用listViewInit()
端点访问并提供一个数字作为ID(/get_data
)
127.0.0.1:55555/get_data=56
它调用一个函数,该函数在该id下获取一些数据并使用收集的数据创建一个json文件[static / data.json],然后返回render_template(' index.html')。
在index.html中调用../static/data_tree.js,然后使用d3.js读取json文件并在浏览器中输出可视化。
当应用程序运行时,即使我使用不同的ID并且json文件发生更改,我也会在浏览器上获得相同的输出。它只适用于我重新加载应用程序然后访问网址。
我的问题是: 如何确保多个用户根据id获取不同的输出,或者当我点击端点时如何重新加载应用程序。
事后考虑:如果多个用户正在使用该应用,则每次只创建一个文件
答案 0 :(得分:3)
感谢您的回答。它有助于深入了解这一点。它现在可以这样工作:
@app.after_request
def apply_caching(response):
response.headers['Cache-Control'] = 'no-cache, no-store, must-revalidate'
return response
因此,通过禁用缓存,应用程序可以将每个请求视为唯一。
答案 1 :(得分:0)
如果您在测试/开发环境中设置app.run(debug=True)
,则每次代码更改时它都会自动重新加载Flask应用。
要在静态文件更改时重新加载应用程序,请使用extra_files
参数。请参阅here。
示例代码:
extra_dirs = ['directory/to/watch',]
extra_files = extra_dirs[:]
for extra_dir in extra_dirs:
for dirname, dirs, files in os.walk(extra_dir):
for filename in files:
filename = path.join(dirname, filename)
if path.isfile(filename):
extra_files.append(filename)
app.run(extra_files=extra_files)