Python django视图同步
我需要创建一个页面,其中页面的一部分是一个相当长的计算结果,另一部分是一个显示一些临时计算结果的图形。我实现它的方式是,我有两种观点。一个视图执行计算并将临时结果存储在会话变量中。第二个视图从会话变量中检索临时结果,并将matplotlib中的值显示为图像 问题是我找不到在第一个视图完成后执行第二个视图的方法。如果第二个视图先执行,那么我会在图中看到旧数据 下面是一些伪代码: views.py:Python django视图同步,python,django,graph,synchronization,views,Python,Django,Graph,Synchronization,Views,我需要创建一个页面,其中页面的一部分是一个相当长的计算结果,另一部分是一个显示一些临时计算结果的图形。我实现它的方式是,我有两种观点。一个视图执行计算并将临时结果存储在会话变量中。第二个视图从会话变量中检索临时结果,并将matplotlib中的值显示为图像 问题是我找不到在第一个视图完成后执行第二个视图的方法。如果第二个视图先执行,那么我会在图中看到旧数据 下面是一些伪代码: views.py: def calc(request): ... do calculations store
def calc(request):
...
do calculations
store interim results in session variable
return render_to_response(...'result':value...)
def graph(request)
retrieve interim results from session variable
create and return HttpResponse(content_type='image/png') with graph
URL.py:
(r'^report/$', 'calc',),
(r'^report/graph.png/$', 'graph',),
resultAndGraph.html:
Result: {{result}}
<img src="graph.png" width="400" height="400">
Result:{{Result}
我建议您设置并使用
但是,如果要使用两个视图,可以使用从第一个视图重定向到第二个视图。如果您有一个长时间运行的进程,请使用类似的任务队列,并将任务卸载到单独的进程 在第二个视图中,只需检查此进程是否完成,然后显示更新的信息(它还可以显示进程仍在运行的通知)
通过使用@cberner建议的缓存机制,与django集成很容易。非常感谢您的建议。我会考虑的。您对calc()和graph()调用的同步有何评论?如果我理解正确,那么不同类型的缓存将无法帮助我解决同步问题。我不完全确定同步是什么意思。如果您想在第一个视图上执行一个视图,您可以使用重定向,但加载速度仍然很慢。非常感谢您的回答。我会试试看。