【问题标题】:Flask render_template and redirect not working after AJAX requestFlask render_template 和重定向在 AJAX 请求后不起作用
【发布时间】:2020-06-07 21:02:22
【问题描述】:

当用户单击按钮时,我有一个页面使用 post ajax 请求将数据发送到后端,一旦数据被处理,我希望用户被重定向到另一个页面,但没有任何反应:

@app.route('/validate', methods=['POST', 'GET'])
def validate():
    tracks = observed_tracks(get_tracks())
    if request.method == "POST":
        data = (request.data.decode('UTF-8'))
        validated = json_parser(data)
        list_validated = validation(validated[1:])
        return render_template("tools/listvalidation.html",tracks=list_validated )
    return render_template("tools/validate.html", tracks=tracks)

我尝试了 render_template、redirect、调用了一个调用 render_template 或重定向的函数,但没有任何效果

有什么想法吗?

【问题讨论】:

    标签: javascript ajax flask request


    【解决方案1】:

    结果发生了什么?你需要找出它为什么渲染错误的模板。

    【讨论】:

    • 字面上什么都没有发生,函数: data = (request.data.decode('UTF-8')) encrypted = json_parser(data) list_validated = validation(validated[1:]) 正确执行,但是在 return render_template(...) 被执行之后没有行,就像 render_template 没有返回任何东西一样。它不是来自它应该呈现的模板,我可以从 URL 访问它
    • 但是曲目在说什么?还是请求方法?你需要把它分解成碎片,一步一步来,然后你就会知道该怎么做。
    • request.method 说“POST”轨道是我想在 /listvalidation.html 中显示的数组列表我检查了它,很好,即使我没有传递参数 render_template 没有做任何事
    • 好的,但是,检查一下“数据”在说什么? “验证”是什么意思?等等
    • 数据包含关于某些音乐曲目的千行文档。已验证将 json 转换为数组列表并将它们与数据库中的数组进行比较,并将其属性“已验证”更改为 True。 list_validated 发送一个数组列表减去标题。我希望这些显示在下一个模板中以确认已完成的操作。验证提供这种输出: ['ArtisteLocal0298', 'AlbumN°9876', 'Titre01', 'Pop', '3:48', '(Lemeilleur)'], ['testgenreMenu', 'testgenreMenu', 'track01_testgenre ', 'Folk', '02:00', 'shouldbefolk']] list_validated: [, ]
    猜你喜欢
    • 1970-01-01
    • 2021-07-16
    • 2020-10-19
    • 2021-08-19
    • 1970-01-01
    • 2012-12-13
    • 2017-09-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多