javascript - Flask 中的 render_template on JS 点击事件

标签 javascript jquery python ajax flask

<分区>

我试图通过单击按钮来调用 Flask 中的函数。单击该按钮时,将运行以下脚本。

JS

$("#load_btn").click(function() {
    $.get("/callback");
}

flask

@app.route('/callback')
def callback():
    print('called')
    ... # code here that needs to run before rendering callback
    return render_template('callback.html')

这里的问题是,called 被打印,GET/callback HTTP/1.1 200 也被记录,但是 callback.html未呈现 - 页面保持不变。我猜这可能不是解决此问题的最佳方法,但如果是的话,推荐的方法是什么?

最佳答案

$.get只是向您的服务器发送一个 HTTP 请求,但实际上并没有对它从服务器返回的数据(在您的例子中是呈现的模板)做任何事情。

尝试这样的事情:

$("#load_btn").click(function() {
    $("html").load("/callback");
}

或者如果您呈现的模板不包含任何 <head>标签,只有正文内容,你可以做

$("#load_btn").click(function() {
    $("body").load("/callback");
}

或者,您可以将“正文”替换为特定元素以仅替换页面的特定部分。

如果您希望用户被重定向,请执行以下操作:

$("#load_btn").click(function() {
    window.location = "/callback";
}

关于javascript - Flask 中的 render_template on JS 点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641580/

相关文章:

python - 如何在 groupby 内对数字和非数字数据类型求和

python - 有没有办法在 Flask WTForms 中创建数据列表字段?

javascript - 如果我按F5,输入值不会重置1,但如果我按ctrl+f5或在url搜索栏中按Enter键,输入值会重置1?为什么?

javascript - 如何访问javaScript Number类型属性

javascript - 点击触发弹出

javascript - jQuery 选择的插件 - 激活(即焦点)不起作用?

python - 随机选择 0 或 1 相同的次数?

javascript - 有没有办法通过在 url 中使用 div id 来更改事件元素?

自 M71 以来不再允许未经用户激活的 JavaScript speechSynthesis.speak()

javascript - 克隆表单输入并清除值