Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django视图同步_Python_Django_Graph_Synchronization_Views - Fatal编程技术网

Python django视图同步

Python django视图同步,python,django,graph,synchronization,views,Python,Django,Graph,Synchronization,Views,我需要创建一个页面,其中页面的一部分是一个相当长的计算结果,另一部分是一个显示一些临时计算结果的图形。我实现它的方式是,我有两种观点。一个视图执行计算并将临时结果存储在会话变量中。第二个视图从会话变量中检索临时结果,并将matplotlib中的值显示为图像 问题是我找不到在第一个视图完成后执行第二个视图的方法。如果第二个视图先执行,那么我会在图中看到旧数据 下面是一些伪代码: views.py: def calc(request): ... do calculations store

我需要创建一个页面,其中页面的一部分是一个相当长的计算结果,另一部分是一个显示一些临时计算结果的图形。我实现它的方式是,我有两种观点。一个视图执行计算并将临时结果存储在会话变量中。第二个视图从会话变量中检索临时结果,并将matplotlib中的值显示为图像

问题是我找不到在第一个视图完成后执行第二个视图的方法。如果第二个视图先执行,那么我会在图中看到旧数据

下面是一些伪代码:

views.py:

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()调用的同步有何评论?如果我理解正确,那么不同类型的缓存将无法帮助我解决同步问题。我不完全确定同步是什么意思。如果您想在第一个视图上执行一个视图,您可以使用重定向,但加载速度仍然很慢。非常感谢您的回答。我会试试看。