16

jinjaテンプレートを使用してPythonからJavaScriptにデータを渡す方法は知っていますが、JavaScript変数をPythonに渡したいと思います。ページをリロードせずにやりたいのですが。それは可能ですか?

4

3 に答える 3

6

はい、monkutが言ったように、JSONとJavascript/jQueryを使用したいと思います。

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

私が見つけた最も適切な例は、Flaskスニペット/パターンでした:http://flask.pocoo.org/docs/patterns/jquery/

于 2013-03-22T01:51:22.247 に答える
5

私は自分のプロジェクトで同様の作業を行いました。ここでコードを共有したいと思います。どの投稿が選択されているかを確認する必要があり、後で比較するために使用できるように、選択した投稿をサーバー側でグローバル変数として設定していました。これが、選択した投稿を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をロードするにはGoogleAJAXAPIを含める必要があります。

<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>
于 2016-06-21T13:11:46.027 に答える
-3

ビューコードからJSON文字列を作成jsonDataし、Jinjaテンプレートに次のように記述します。

<script type="text/javascript">
    var data = {{ jsonData }};
</script>
于 2013-03-31T07:55:38.510 に答える