2

matplotlibと を使用していくつかのグラフを描画するプログラムを Python で作成しましたtkinter
そのプログラムを自分の Web ページに表示して無料で使用したいと考えています。
この Python プログラムを Web ページで実行するにはどうすればよいですか?

4

4 に答える 4

2

Web アプリケーションを作成するための軽量フレームワークとして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/URL を使用して適切な入力のグラフを取得し、それらを<img>タグでレンダリングできます。

于 2012-12-22T19:31:44.810 に答える
2

Web フレームワーク フラスコの使用に興味がある場合は、フラスコで matplotlib を使用してオンザフライでグラフを作成する方法に関するこのディスカッションから、これを参照してください。

イメージを Amazon 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 サイトにアップロードし、選択したフレームワークに表示します。

私が取り組んでいる現在のプロジェクトはまさにこれを行います次のファイルを見てみましょう: graph.py、tools.py、views.py、および base.html。もちろん、これには boto、flask、matplotlib を理解する必要がありますが、少なくとも出発点にはなります。

于 2012-12-22T18:53:19.443 に答える
1

このような問題に対する通常のアプローチは、プログラムのコアをインターフェースから分離することです。

1 つのアプローチは、プログラムをモジュールに変換し、それを GUI と Web フレームワークの両方からインポートすることです。

もう 1 つの方法は、プログラムをデーモンにすることです。GUI と Web インターフェースの両方が、ある種のメッセージング プロトコルを使用して対話します。この例は、たとえばipythonです。

于 2012-12-22T19:30:43.440 に答える