2013-03-21 358 views
8

私はジンジャーテンプレートでデータをPythonからjavascriptに渡す方法を知っていますが、JavaScriptの変数をPythonに渡したいと思います。私はページをリロードすることなくそれをしたいと思います。それは可能ですか?javascriptからFlaskにデータを渡す

+5

AJAX要求を使用できますか? – monkut

答えて

4

はい、monkutのように - 私はJSONとJavascript/jQueryを使いたいと思っています。

これにより、クライアントからサーバーへの通信が可能になります。

私が見つけた最も適用例は、フラスコスニペット/パターンにあった:http://flask.pocoo.org/docs/patterns/jquery/

-1

書き込み、jsonDataを言うと、あなたの神社テンプレートでのビューコードから

<script type="text/javascript"> 
    var data = {{ jsonData }}; 
</script> 
+1

OPは、彼がすでにこれをやっている方法を知っていて、他の方向に行きたいと言っていました。 – pydsigner

2

のようなものをJSON文字列を作成します。私は私のプロジェクトで同様の仕事をしましたが、ここで自分のコードを共有したいと思います。どの投稿が選択されているかを知る必要があり、選択した投稿をサーバ側のグローバル変数として設定していたので、後で比較するために使用することができます。これは私が選択した投稿をJavascriptに渡す方法です。

<a class="label label-primary" onclick="myFunction({{very.id}})" > Compare</a> 

今、JavascriptからFlaskへ。

function myFunction(x) { 
     $.getJSON($SCRIPT_ROOT + '/check_selected', { 
     post: x 
     }, function(data) { 
      var response = data.result; 
      console.log(response); 
      } 
     }); 
} 

JSONを使用してフラスコから結果を返す方法です。

import json 
@main.route('/check_selected', methods=['GET','POST']) 
def check_selected(): 
    global selected 
    post = request.args.get('post', 0, type=int) 
    return json.dumps({'selected post': str(post)}); 

として、我々はjqueryのをロードするには、Google AJAX APIを含める必要があり、hereを述べた:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="{{ 
    url_for('static', filename='jquery.js') }}">\x3C/script>')</script> 
+0

どうやってユーザーのクリックボタンの代わりにページの読み込み機能を呼び出し、JavaScriptからフラスコにデータを渡すか –

関連する問題