我正在创建一个多页的应用程序,在第一页(/ index)用户选择表单中需要的参数,然后他们被发送到服务器(我使用Flask框架) 和参数用于做一些计算并将结果返回到使用D3.js(/ res?par1 = 2 & par2 = 3)可视化数据的新路径。路线只是一个简单的例子。现在在图片上,我想点击一部分(代表数据的子部分)并重定向到新路线:/ res?par1 = 2 & par2 = 3 & sub =“sub1”。如何在Flask的2条路径之间传递预处理的数据?
编辑: 我的简化途径的例子是这样的:
@app.route('/<ds>', methods=['GET', 'POST'])
def treeview(ds):
distMeasure = request.args.get('dist')
correction = request.args.get('corr')
big_json_tree = tree2json(distMeasure, correction, cutStrategy, minSize, maxSize, ..)
if request.args.get('node_id'):
id = request.args.get('node_id')
select_data = select(big_json_tree,id)
render_template("nodeview.html", data=select_data)
else:
render_template("baseview.html", data=big_json_tree)
所以它的工作原理就像是:我去的URL/DS DIST到nodeview页= P &科尔= A(有更多的参数),并且有一棵树。如果我点击一个树节点,那么我应该被重定向到新页面/ ds?dist = p & corr = a & node_id = 2其中我有一个来自big_json_data的子数据并绘制它。
我的问题是,如果我去新的路线,我需要从初始路线的一些数据,但计算需要时间,所以我想保留计算的对象,并在“儿童”路线中使用它们。我也想在这些页面上前后移动,而不是一直进行初始计算。
我知道会话,但它似乎并不意味着复杂的对象。
任何想法如何解决这种路由? (无论是在瓶的路线或浏览器侧)
我会尽量保持路由尽可能的简单,并使用[缓存](http://flask.pocoo.org/docs/0.11/patterns/缓存/)暂时存储计算结果。 –