flask render_模板在AJAX pos上不起作用

2024-10-01 13:34:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个网站,使一个AJAX张贴到一个烧瓶路线。在

我知道有很多类似的问题(请不要标记为重复),它们使用ajaxsuccess方法来处理响应。这在我的简化示例中是可行的,但实际代码中的路径是从数据库中提取一堆数据,这些数据被呈现到多个表中。我不希望用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格式

^{pr2}$

Tags: 数据方法标记appflask示例message烧瓶
3条回答

我在很多页面上都找到了这个问题的答案,直到我找到了释放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); }       
   })

最重要的一行是成功行,它发布文档以便可以重新提交。在

当您通过AJAX发送POST请求时,请求来自javascript,来自flask的响应数据将存储在javascript对象中。浏览器本身不直接发送或接收任何内容,因此不会重新呈现页面。在

您需要在Flask应用程序中定义另一个端点来为POST请求返回json数据,并使用AJAX来使用返回的json数据操作DOM。在

好吧,你为什么不直接从你的flask应用程序发送一个“是或否”标志呢。由于您希望在不刷新页面的情况下显示成功或失败消息,所以在flask应用程序返回结果时让jquery更新DOM。有点像 return message在你的flask应用程序中,你可以通过 success: function(e)({ $('body').append(e);});。由于我手机上的字长限制,无法生成更多代码,但调整你的代码就可以完成任务。干杯!在

相关问题 更多 >