0

我的代码:

<html>
<style type="text/css">
    h1 {
         position: absolute;
         top:   5px;
         left:  200px;      
       }    

    form #Edit1 { 
                   position: absolute; 
                   top:    37px; 
                   left:   410px; 
                }

    form #Edit2 { 
                   position: absolute; 
                   top:    37px; 
                   left:   840px; 
                }

    </style>
    <font size="4" face="arial" color="#0000FF">
    <h1>XML Search</h1>
    </font>
    <br/>
    <br/>
    <Form Action ="/search/" Method ="POST">
    <div id="Edit1">
        <INPUT TYPE = 'VARCHAR'  name ='word' VALUE ="" size = "50">
    </div>
    <div id="Edit2">
        <INPUT TYPE = "Submit" VALUE = "Search">
    </div>
    <br/>
    <hr/>
    {% csrf_token %}
    </Form>

    {% if list1 %}
          <br/>     
          <head>
            #!/usr/bin/python
            # make a horizontal bar chart
            from pylab import *
            val = 3+10*rand(5)    # the bar lengths
            pos = arange(5)+.5    # the bar centers on the x axis

            figure(1)
            barh(pos,val, align='center')
            {% for l in list1 %}
                   xticks(pos, ({{l.file_name}},))
            {% endfor %}
            xlabel('Performance')
            title('How fast do you want to go today?')
            grid(True)
            show()
          </head>
          <body>
            <div id="chart_div" style="width: 1000px; height: 500px;"></div>
          </body>

    {% endif %}
</html>

我在 Django 中创建了一个名为“search”的应用程序,它搜索用户在 10xml 文档中输入的关键字,并保持每个文件的出现频率。当用户输入单词时,他会以图表形式获得结果。上面提到的这个 HTML 代码文件是从 views.py 文件重定向的。在服务器上运行应用程序时,与 HTML 代码一起使用的 Python 代码会在用户输入关键字时按原样打印。如何在 HTML 页面中显示在 pylab 中创建的图表?

我有另一个想法,我之前用过谷歌图表,它们工作正常。唯一的问题是,如果没有互联网,它们将无法工作,这将是可能的应用程序的一个缺点。有没有办法解决这个问题,我的意思是我们如何静态使用谷歌图表?如果你们中的任何人想要我上传我的谷歌图表代码,我可以做到。

4

1 回答 1

1

您需要使用 FigureCanvasAgg 后端并返回一个 HttpResponse。参见例如:

[使用 Matplotlib 的 Django][1]

如何在 Django 中使用 Matplotlib?

于 2012-07-09T14:36:11.043 回答