如何在html中显示python应用程序?

时间:2012-12-22 18:51:41

标签: python html matplotlib tkinter

我用Python编写了一个程序,使用matplotlibtkinter绘制一些图表 我想在我的网页上显示该程序以供免费使用。
如何让这个Python程序在网页上运行?

4 个答案:

答案 0 :(得分:2)

如果您对使用网络框架瓶子感兴趣,请查看this,从讨论如何创建graph on-the-fly using matplotlib in flask.

我建议将图像存储在亚马逊s3服务的某个地方。这样,图像将很容易从会话到会话访问。所以从上面的线程链接修改代码......

将对象作为png返回:

from matplotlib.pyplot import figure
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
import StringIO

def create_a_graph()
    fig = figure(figsize=a_size_integer,a_size_integer))
    canvas = FigureCanvas(fig)
    canvas.print_png(png_output)

    return png_output

然后使用boto将它们上传到amazons s3网站,并在您选择的框架上显示它们。

我正在研究current project就是这样。看看文件:graph.py,tools.py,views.py和base.html。当然这需要了解boto,flask和matplotlib,但至少它会给你一个起点。

答案 1 :(得分:2)

您应该查看mod_wsgi以及python社区中存在的众多网络软件包之一,或构建您自己的软件包。

但你还需要了解tkinter是一个gui-library,它不会从网络上运行,听起来就像你想要的那样。但是你可以为你的代码构建一个web接口,如果表示逻辑与应用程序逻辑完全分离,那么这应该不会很难。这就是说,如果你是一般的编程或特别是网络编程的新手,这绝对不是一件容易的事。

答案 2 :(得分:2)

看看Flask作为制作网络应用程序的轻量级框架,然后有一条路线:

@app.route("/graph/<input>")
def drawGraph(input):
    # Graph drawing code goes here.
    image = # The image file as a string, as if you'd read it in from a file
            # object

    return Request(image, mimetype="image/png")

然后在模板中,您可以使用/graph/网址获取相应输入的图表,并将其呈现在<img>代码中。

答案 3 :(得分:1)

解决这些问题的常用方法是将程序的核心与界面分开。

一种方法是将程序转换为一个模块,然后从GUI和Web框架导入该模块。

另一种方法是将程序变为daemon。然后,GUI和Web界面都使用某种消息传递协议与它通信。例如,这是一个例子。 ipython