我正在测试使用测试服务器在本地运行的Django应用程序。
我的一个观点会将字典返回到其模板main.html
:
d = {'f1':'/f1.png','f2':'/f2.png'}
return render_to_response('myapp/main.html', d, context)
'/f1.png'
中的每个网址(例如d
)都会生成并返回一个数字:
canvas=FigureCanvas(fig)
response=HttpResponse(content_type='image/png')
canvas.print_png(response,dpi=400)
return response
在任一视图中都没有生成数字的错误。
但是,第二个数字有时无法在主页面上呈现(main.html
)。
发生这种情况时,我从测试服务器收到以下错误:
"GET /url_for_my_app/f2.png HTTP/1.1" 500 59
error: [Errno 32] Broken pipe
我意识到这可能是由于浏览器请求的时间安排(例如,error: [Errno 32] Broken pipe)。
(1)在这种情况下可能导致错误的原因是什么?
(2)如何最好地解决?
编辑:我确定了明显的原因(但只是凭经验---我不知道它为什么会导致错误)。在返回plt.tight_layout()
对象(在笔记本中运行的残差)之前,生成第二个数字的视图包含fig
。 <{1}}被移除后,错误就消失了。
plt.tight_layout()