我有一个网站可以将 AJAX 帖子发送到 Flask 路由。
我知道有许多类似的问题(请不要标记为重复)使用 AJAX 成功方法来处理响应。这在我的简化示例中可行,但我的实际代码中的路由是从数据库中提取一堆数据,然后将这些数据呈现给多个表。我不想用 JavaScript 重写所有表数据更新,所以我真的只需要重新呈现模板。
python :
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def hello_world(message=None):
return render_template('test.html', message=message)
app.run()
html
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('#mybutton').click(function () {
$.post(window.location.href, {'test': 'test'});
});
});
</script>
</head>
<body>
{{ message }}
<button id="mybutton" name="mybutton" type="button">Click Me!</button>
</body>
</html>
最佳答案
我在很多页面上寻找这个问题的答案,但直到我找到释放 AJAX 调用的页面才允许重新渲染,但没有一个有效:
$('form').on('submit', function(event) {
$.ajax({
type: 'POST',
url: "{{ url_for( 'myServerFunction' ) }}",
data: JSON.stringify({'myId':bunchOfIds}),
contentType: "application/json",
success:function(response){ document.write(response); }
})
最重要的行是成功行,它释放文档以便重新呈现它。
关于javascript - flask render_template 不适用于 AJAX 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48015074/