16

我知道如何使用 jinja 模板将数据从 python 传递到 javascript,但我想将 javascript 变量传递给 python。我想在不重新加载页面的情况下做到这一点。那可能吗?

4

3 回答 3

6

是的,就像蒙库特所说的那样——我相信你想使用 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)});

如此处所述,我们需要包含 Google AJAX API 才能加载 jquery:

<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 回答