将 javascript 数组传递给 flask

Passing Javascript Array to Flask

本文关键字:flask javascript 数组      更新时间:2023-09-26

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

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

Flask 有一个名为 request 的内置对象。在请求中有一个称为args的多词典。

可以使用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 请求(如果您使用帖子,请使用 request.form )。在javascript端,你可以使用纯javascript或jquery发出get请求。我将在我的示例中使用 jquery。

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

这就是将数据从客户端传递到烧瓶中的方式。jquery 代码的函数部分是将数据从烧瓶传递到 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 响应中使用顶级列表。