简体   繁体   English

将数据从javascript传递到Flask

[英]Passing data from javascript into Flask

I know how to pass data with a jinja template from python into javascript, but I want to pass a javascript variable into python. 我知道如何将带有jinja模板的数据从python传递到javascript,但我想将一个javascript变量传递给python。 I'd like to do it without reloading the page. 我想在不重新加载页面的情况下这样做。 Is that possible? 那可能吗?

I did a similar kind of work in my project and would like to share my code here. 我在我的项目中做了类似的工作,想在这里分享我的代码。 I need to find out which post is selected and I was setting the selected post as a global variable at server side, so that I may use it for later comparison. 我需要找出选择了哪个帖子,并且我将所选帖子设置为服务器端的全局变量,以便我可以将其用于以后的比较。 This is how I pass my selected post into Javascript. 这就是我将所选帖子传递给Javascript的方法。

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

Now from Javascript to Flask. 现在从Javascript到Flask。

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

This is how I return the result from flask by using JSON. 这是我使用JSON从flask返回结果的方法。

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)});

As mentioned here , we need to include Google AJAX API in order to load jquery: 如前所述在这里 ,我们需要包括谷歌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>

Yes, like monkut said--I believe you want to use JSON and Javascript/jQuery. 是的,就像monkut所说 - 我相信你想要使用JSON和Javascript / jQuery。

This will let allow communication from client to server and back again. 这将允许从客户端到服务器的通信再返回。

The most applicable example I found was in the Flask snippets/patterns: http://flask.pocoo.org/docs/patterns/jquery/ 我找到的最适用的例子是Flask片段/模式: http//flask.pocoo.org/docs/patterns/jquery/

Create a JSON string from your view code say, jsonData and in your Jinja Template, write something like 从您的视图代码创建一个JSON字符串,例如jsonData并在您的Jinja模板中编写类似的内容

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM