首页 > 解决方案 > 将列表数据从 html 传递到 python (flask)

问题描述

我将列表数据selectedOrder从 python 传递到 html,如下所示。

return render_template(f"fillForm.html", items=selectedOrder)

我知道有一种方法可以通过使用输入表单或将数据附加到 url 来从 html 发送单个数据,/fillForm?sid=3&quantity=5但我很好奇我是否也可以以这种方式将列表数据从 html 发送回 python。显然,我可以在传递数据之前将数据存储到 python 中的某个变量中,但考虑到我的代码是如何工作的,如果可能的话,最好直接从 html 获取数据。不确定这是否重要,但我使用烧瓶和 jinja2 模板。

标签: javascriptpythonhtmlflaskjinja2

解决方案


您可以使用 ajax 请求并将您的列表作为 json 发送。Flask 提供了 request.get_json() 方法来检索作为 dict 接收的 json 数据。假设你有 jquery,它会像:

$.ajax({
    url: "/your_route",
    type: "POST",
    contentType: "application/json;charset=UTF-8",
    dataType: "json",
    data: JSON.stringify({html_data: yourlist}),
    success: function(response) {
        console.log(response);
    },
});

然后在烧瓶一侧:

@app.route('/your_route')
def your_route():
    data = request.get_json()
    print(data['html_data'])   # should print your list
    # don't forget to return a success status

推荐阅读