Python Django中生成图形的断管错误
我正在使用测试服务器测试本地运行的Django应用程序 我的一个视图将字典返回到其模板Python Django中生成图形的断管错误,python,django,matplotlib,Python,Django,Matplotlib,我正在使用测试服务器测试本地运行的Django应用程序 我的一个视图将字典返回到其模板main.html: d = {'f1':'/f1.png','f2':'/f2.png'} return render_to_response('myapp/main.html', d, context) d中的每个url(例如,'/f1.png')将生成并返回一个图形: canvas=FigureCanvas(fig) response=HttpResponse(content_type='image/p
main.html
:
d = {'f1':'/f1.png','f2':'/f2.png'}
return render_to_response('myapp/main.html', d, context)
d
中的每个url(例如,'/f1.png'
)将生成并返回一个图形:
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
我意识到这可能是由于浏览器请求时间(例如)
(1) 在这种情况下,什么可能导致错误
(2) 如何最好地解决这个问题
编辑:我确定了明显的原因(但只是凭经验——我不知道它为什么会导致错误)。在返回fig
对象(在笔记本中运行的剩余)之前,生成第二个图形的视图包括plt.tight_layout()
。删除plt.tight\u layout()
后,错误消失
plt.tight_layout()
canvas=FigureCanvas(fig)
response=HttpResponse(content_type='image/png')
canvas.print_png(response,dpi=400)
return response