将Javascript数组传递给Flask

发布于 2021-01-29 14:11:09

我在烧瓶中有一个称为数组的函数,该函数接收一个列表并打印出列表中的项目:

def array(list):
    string = ""
    for x in list:
        string+= x
    return string

在客户端,我想将名为str的javascript数组传递给该数组。我该怎么办?这就是我现在所拥有的,但是Flask没有读取添加的变量。有任何想法吗?

for (var i = 0; i < response.data.length; i++) {
            console.log(i);

            // str = str + "<br/><b>Pic</b> : <img src='"+ response.data[i].picture +"'/>";

            str[i] = response.data[i].picture;
        }
        window.location = "{{ url_for('array', str=list ) }}";
关注者
0
被浏览
106
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    Flask具有一个称为request的内置对象。在请求中有一个称为args的multidict。

    您可以request.args.get('key')用来检索查询字符串的值。

    from flask import request
    
    @app.route('/example')
    def example():
        # here we want to get the value of the key (i.e. ?key=value)
        value = request.args.get('key')
    

    当然,这需要一个get请求(如果您使用post,请使用request.form)。在javascript方面,您可以使用纯javascript或jquery进行get请求。 我将在示例中使用jquery。

    $.get(
        url="example",
        data={key:value}, 
        success=function(data) {
           alert('page content: ' + data);
        }
    );
    

    这是将数据从客户端传递到Flask的方式。jQuery代码的功能部分是如何将数据从flask传递到jquery。举例来说,假设您有一个名为/
    example的视图,并且从jquery端传入了键值对“ list_name”:“ example_name”

    from flask import jsonify
    def array(list):
        string = ""
        for x in list:
            string+= x
        return string
    
    @app.route("/example")
    def example():
        list_name = request.args.get("list_name")
        list = get_list(list_name) #I don't know where you're getting your data from, humor me.
        array(list)
        return jsonify("list"=list)
    

    在jquery的成功函数中,你会说

      success=function(data) {
           parsed_data = JSON.parse(data)
           alert('page content: ' + parsed_data);
        }
    

    请注意,出于安全原因,flask不允许在json响应中显示顶级列表。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看