Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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_Mysql_Django_Matplotlib - Fatal编程技术网

Python 如何阻止Django服务器继续加载?

Python 如何阻止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 =

我正在获取用户输入,用户输入保存在数据库中。从数据库中提取值以显示图形。我正在使用matplotlib包。当服务器第一次运行时,每次显示图形都没有问题,但当我再次尝试显示图形时,页面将永远保持加载状态。每次我都必须重新启动系统以停止加载页面。我试图通过添加close()、clf()方法来解决这个问题,但问题仍然存在

我正在使用Python2.7、Django 1.10.4和mysql

**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中找到