2016-05-14 81 views
-1

htmlボタンを押したときにPythonコードを実行するフラスコを使用しています。私のpythonコードは、エンコードされた画像を取得し、それをデコードしてエンコードされたテキストを返します。私が欲しいのは、htmlボタンが押されたとき、ページがPythonコードを実行し、デコードされたテキストを表示します。私のpyファイルにはコードがありますが、実行されません。pythonコードを実行するHTMLボタン

これは、Pythonの "new.py" のコードです:私はネットワークANS Pythonで初心者です

from flask import Flask 

import os 

import subprocess 

app = Flask(__name__) 

@app.route("/stop/") 

def test(): 

    os.system('Python CN_Project.py') 

if __name__ == "__main__": 

    app.run(debug=True) 

。私を助けてください。

+0

、os.system 'にパイソン()'大文字です。これは動作しません。 2つのフラスコにはレスポンスオブジェクトがあり、ブラウザにコンテンツが返されます。レスポンスオブジェクトはありません。システムコマンドだけです。三つ、ここにボタンはありません。つまり、Flaskの開発サーバー以外のWebサーバーを使用しているということです。あなたはApacheと統合していますか? mod_wsgiを使用していますか?リクエストを送信し、レスポンスを処理するHTMLページはどこにありますか? – Keozon

+0

私は簡単なhtmlページを作っています: テスト

+0

これはうまくいかないでしょう。 Pythonインタプリタ自体を指すことはできません(小文字の 'python'では' Python'ではなく、ウィンドウ上にある場合は.exeで終わります)。フォルダを指しているようですフラスコには開発サーバーが付属しています。フラスコにはローカルファイルではなくHTMLボタンページを提供することができます。 – Keozon

答えて

0

Flask tutorialを試してみましたか? template

は、あなたがPythonの関数へのリンクを作成することができます。

<a href="{{ url_for('login') }}">log in</a>

ユアーズは次のようになります。あなたのview、new.pyに続い

<a href="{{ url_for('test') }}" class="btn btn-info" role="button">stop</a>

そして、あなたのpythonファイルをモジュールとしてインポートし、その中で関数を呼び出して画像をデコードし、テキストを返します。ちょうどあなたのPythonの関数にハードコードされた画像を使用して動作し、今の

<p>{{ text_to_render }}</p>

from flask import Flask 
from CN_Project import decode_text_from_image 
... 

@app.route("/stop/") 
def test(): 
    output_text = decode_text_from_image('hardcoded_image.jpg') 
    return render_template('my_page.html', text_to_render=output_text) 
... 

次に、あなたのHTMLで出力テキストtemplateをレンダリングします。その後、画像を渡すことに対処することができます。おそらく、ファイルピッカーを使用します。

番号:1について

Flask tutorial

Flask templates

Flask view functions

+0

上記のすべてを実装することで、デコードから移動してWebページに単にhelloの世界を表示しますが、htmlボタンを押すとファイルが見つかりませんでした。 –

+0

ファイルへのパスを引数としてとる関数を呼び出す場合は、問題の可能性があります(パスが間違っているファイルをハードコードした場合など)。 一般に、エラーメッセージが表示された場合は、スタックオーバーフローで検索して問題を絞り込みます。また、基本的にFlaskのチュートリアルを最初にやってみてください。 – ariannedee

関連する問題