我正在创建一个多页面应用,在第一页(/ index)用户在表单中选择所需的参数,然后将它们发送到服务器(我使用的是Flask框架) 并且参数用于对数据进行一些计算,结果返回到使用D3.js(/ res?par1 = 2& par2 = 3)可视化数据的新路径。这条路线只是一个更简单的例子。现在在图片上我想点击一个部分(代表数据的子部分)并重定向到新路线:/ res?par1 = 2& par2 = 3& sub =“sub1” 。
编辑: 我简化的路线示例如下:
cv2.waitkey
所以它的工作原理如下:我使用url / ds进入nodeview页面?dist = p& corr = a(有更多参数)并且有一棵树。如果我单击一个树节点,那么我应该被重定向到新页面/ ds?dist = p& corr = a& node_id = 2其中我有一个来自big_json_data的子数据并且我绘制它。
我的问题是,如果我去新路线我需要初始路线的一些数据,但计算需要时间,所以我想保留计算的对象并在“children”-route中使用它们。我还希望在这些页面上前后移动,而不是一直进行初始计算。
我知道会话,但似乎它并不适用于复杂的对象。
任何想法如何解决这种路由? (在Flask路线或浏览器方面)
答案 0 :(得分:0)
一个简单的方法来做服务器端将是使用CBV的又名:基于类的视图,(在烧瓶中意味着使用flask.views.View
或flask.views.MethodView
作为基本视图类)和将数据保存为类级变量,然后需要共享数据的任何处理函数都需要实现为视图的方法。例如:
import flask
from flask import views
app = flask.Flask(__name__)
app.config.SECRET_KEY = 'xxx'
class IndexView(MethodView):
_some_processing_var = 100
_another_var = 2
def get(self,arg=None):
if arg is None:
IndexView._some_processing_var = 55
else:
IndexView._another_var = arg
return flask.jsonify(result=IndexView._another_var*IndexView._some_processing_var)
app.add_url_rule('/','index',view_func=IndexView.as_view('index'))
app.add_url_rule('/<arg>','arg_index',view_func=IndexView.as_view('arg_index'))
类似的东西