2017-09-13 4 views
1

私はPythonをよく知っていますが、私はweb-stuffとJavaScriptの新機能です。私はCalling a python function from button on website (Flask)について投稿を見つけました。フラスコ/ PythonからJavascript関数を呼び出す

次のようにしたいと思います。HTMLテーブルに新しい行を追加します。データはPythonから来ます。私はすでにサイトをリフレッシュすることは良い方法ではなく、代わりにJavaScriptを使うべきだと分かっています。

<table class="table" id="myTable"> 
    <thead> 
    <tr> 
     <th colspan="2">This is a table</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>entry 1</td> 
     <td>entry 2</td> 
    </tr> 
    </tbody> 
</table> 
<script src="js/scripts.js"></script> 

と私は(リンクポストから)以下の機能を持っているscripts.jsで:私は、次のHTMLコードを持っていると言う

function appendRow(table_id) { 
    var table_ref = document.getElementById(table_id).getElementsByTagName('tbody')[0]; 
    var new_row = table_ref.insertRow(table_ref.rows.length); 
    var new_cell = new_row.insertCell(0); 
    var new_text = document.createTextNode('New row'); 
    new_cell.appendChild(new_text); 
} 

は今の機能がどのように動作するかの詳細を無視/何私の本当の質問は:Python /フラスコからこの関数をどのように呼び出すことができますか?

その他:JavaScript関数にデータ(JSON構造など)を渡すにはどうすればよいですか?

事前に感謝します。

+0

の複製/関連を返しますフラスコドキュメントからこのlinkと例の下を参照してください。 and-javascript –

+0

ajaxの仕組みに関するインターネット上のチュートリアルや記事がたくさんあります。それは実際にはいくつかの文章で説明できるものではありません。このような単純なものについては、コールバック関数を使用します。したがって、関数にデータを渡すのではなく、関数をデータに渡すと考えることができます。 –

答えて

0

これを参照してくださいlink ajaxを使用してページを更新せずにテーブルを読み込むことができます。

フラスコのjsonifyを使用してフラスコのアプリからjsonを返すことができます。 https://stackoverflow.com/questions/298772/django-template-variables- -

from flask import jsonify 
@app.route('/_get_current_user') 
def get_current_user(): 
    return jsonify(username=g.user.username, 
        email=g.user.email, 
        id=g.user.id) 

は、以下のJSON

{ 
    "username": "admin", 
    "email": "[email protected]", 
    "id": 42 
} 
+0

新しいデータをいつ開かれたページに送ることができるのかを知らずに、そのデータをプッシュできるようにしたい場合は、WebSocketを使用することもできます。 – jrtapsell

関連する問題