Python 如何阻止Django服务器继续加载?
我正在获取用户输入,用户输入保存在数据库中。从数据库中提取值以显示图形。我正在使用matplotlib包。当服务器第一次运行时,每次显示图形都没有问题,但当我再次尝试显示图形时,页面将永远保持加载状态。每次我都必须重新启动系统以停止加载页面。我试图通过添加close()、clf()方法来解决这个问题,但问题仍然存在 我正在使用Python2.7、Django 1.10.4和mysqlPython 如何阻止Django服务器继续加载?,python,mysql,django,matplotlib,Python,Mysql,Django,Matplotlib,我正在获取用户输入,用户输入保存在数据库中。从数据库中提取值以显示图形。我正在使用matplotlib包。当服务器第一次运行时,每次显示图形都没有问题,但当我再次尝试显示图形时,页面将永远保持加载状态。每次我都必须重新启动系统以停止加载页面。我试图通过添加close()、clf()方法来解决这个问题,但问题仍然存在 我正在使用Python2.7、Django 1.10.4和mysql **Views.py** def show(request): try: x = [] y =
**Views.py**
def show(request):
try:
x = []
y = []
con = MySQLdb.connect("localhost", "root", "", "mydb")
c = con.cursor()
c.execute("select * from dummy")
row = c.fetchone()
while row != None:
x.append(row[0])
y.append(row[1])
row = c.fetchone()
plt.plot(x, y)
plt.title("THE GRAPH")
a = max(y)
a1 = min(y)
a2 = numpy.mean(y)
plt.xlabel("X-AXIS",color='red')
plt.ylabel("Y -AXIS",color='red')
plt.text(-2,1,"Max Y-Value:"+str(a),verticalalignment="top",horizontalalignment="right")
plt.text(-2,2,"Min Y-Value:"+str(a1), verticalalignment="top", horizontalalignment="left")
plt.text(-2,3,"Avg Y-Value:"+ str(a2), verticalalignment="top", horizontalalignment="center")
plt.show()
return render(request,"back.html",{})
您是否尝试过关闭连接和游标?i、 e
c.close()
con.close()
如本文所示:
您不能在生产环境中使用交互式版本的matplotlib,这肯定会出错。只需执行以下操作:
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from matplotlib.figure import Figure
def graphic(request):
#other stuff goes here
fig=Figure()
fig1=fig.add_subplot(1,1,1)
fig1.plot(x,y)
canvas=FigureCanvas(fig)
response=HttpResponse(content_type='image/png')
canvas.print_png(response)
return response
这只是图表部分。要在模板中实现此图表,只需在tempole中放一行,如下所示
<img src='{% url "graphic" %}'>
并确保它可以在URL中找到