2016-04-19 4 views
0

ボタン付きのHTMLページがあります。このウェブページはFlaskで実行されています。私がしたいことは、ユーザーがボタンを押したときに、私はPythonメソッドを呼び出すことです。HTML Webページでpythonメソッドを実行

main.py

from flask import url_for, Flask, render_template 

app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return render_template('tour.html') 

if __name__ == '__main__': 
    app.run(debug=True) 

def first(): 
    global todayDate 
    parseWemake(*Wemake.wemakeData()) 
    parseCoupang(*Coupang.coupangData()) 
    parseTmon(*Tmon.tmonData()) 

tour.html

<button>Click</button> 

私は今ここに失われています。私がしたいのは、html上のそのボタンをクリックしてfirst()メソッドを呼び出すことだけです。

ありがとうございます。

答えて

1

これはできません。

ブラウザでは「クリック」が発生しますが、サーバーでは「最初」が実行されるためです。

必要なものは、html形式またはajax要求です。

1

私はフラスコでpythonスクリプト(メソッド)を実行する方法を見つけました。本当に簡単です。 フリンズ関数でPythonファイルをインポートするだけです。 Pythonクラスの数を持つページを開発している場合、いくつかの制限があるかもしれませんが、この解決策は私の問題を解決しました。

<a href="/exec"> This link will invoke Parse method </a> 

tour.html

from flask import Flask, render_template 

app = Flask(__name__) 

@app.route('/') 
def index(name=None): 
    return render_template('tour.html',name=name) 

@app.route('/exec') 
def parse(name=None): 
    import Parse 
    print("done") 
    return render_template('tour.html',name=name) 


if __name__ == '__main__': 
    app.run(host='0.0.0.0') 
    app.debug = True 

これは、ボタンのクリックで "Parse.py" を実行します。

これは、ローカルではまったく問題なく動作しました。今、私はherokuサーバーでテストします。この方法で問題がありますか?

関連する問題