Sud*_*eep 1 javascript python ajax jquery flask
我试图通过单击按钮调用Flask中的函数.单击该按钮时,将运行以下脚本.
JS
$("#load_btn").click(function() {
$.get("/callback");
}
Run Code Online (Sandbox Code Playgroud)
烧瓶
@app.route('/callback')
def callback():
print('called')
... # code here that needs to run before rendering callback
return render_template('callback.html')
Run Code Online (Sandbox Code Playgroud)
这里的问题是,called打印,并GET /callback HTTP/1.1 200记录,但callback.html不会被渲染 - 页面保持不变.我猜这可能不是解决这个问题的最佳方法,但如果是这样,推荐的方法是什么?
$.get 只是向您的服务器发送一个HTTP请求,但实际上并没有对从服务器返回的数据(在您的情况下,呈现的模板)做任何事情.
尝试这样的事情:
$("#load_btn").click(function() {
$("html").load("/callback");
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您渲染的模板不包含任何<head>标记,则只能包含正文内容
$("#load_btn").click(function() {
$("body").load("/callback");
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以将"body"替换为特定元素,以仅替换页面的特定部分.
如果要重定向用户,请执行以下操作:
$("#load_btn").click(function() {
window.location = "/callback";
}
Run Code Online (Sandbox Code Playgroud)