在FLASK中使用ajax发布数据后如何呈现模板?

2024-10-01 11:30:10 发布

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

我有一个问题,我不能打开渲染模板后发布数据与ajax。这是我的ajax代码。在

if ($(this).attr("value") == "button-three") {

    var skoring = getRadioVal(document.getElementById('mentodeNegasi'),'negasi')

    $.ajax({
        data: { metodeSkoring: skoring },
        type: 'POST',
        url: '/evaluasiModel'
    })
}

这是我的服务器代码。在

^{pr2}$

我希望在将数据ajax发布到“def evaluationmodel()”之后,我可以打开呈现模板“eval”uasiModelKlasifikasi.html“并获取要在此模板中显示的数据。在


Tags: 数据代码模板ifvaluevarajaxbutton
2条回答

您必须在ajax调用的success函数中添加来自响应的html代码。您没有指定要添加代码的位置,所以这里有一个将其添加到页面的body中的示例。。。在

if ($(this).attr("value") == "button-three") {

    var skoring = getRadioVal(document.getElementById('mentodeNegasi'),'negasi')

    $.ajax({
        type: 'POST',
        url: '/evaluasiModel'
        data: { metodeSkoring: skoring },
        dataType: 'html'
        success: function(response) {
            $('body').append(response);
        }
    })
}

你为什么需要post功能?您可以简单地在使用重定向从用户那里获取值后加载页面。在

下面是一个如何这样做的例子。我模拟了一个类似的场景。我需要的

  1. application.py:作为路由控制器
  2. index.html:作为主模板
  3. evaluasiModelKlasifikasi.html:作为重定向模板

application.py

import json
from flask import Flask, render_template

app = Flask(__name__)

@app.route('/')
@app.route('/index')
def show_index():
    return render_template("index.html")

@app.route('/evaluasiModel/<metodeSkoring>')              
def evaluasiModel(metodeSkoring):
        return render_template("evaluasiModelKlasifikasi.html", hasilSkoring = metodeSkoring)

if __name__ == '__main__':
    app.run(debug=True)

index.html

^{pr2}$

evaluasiModelKlasifikasi.html

<!DOCTYPE html>
<html>
<head>
    <title>evaluasiModel</title>
</head>
<body>
    <div id="container">
        <div id="result">
            hasilSkoring: {{ hasilSkoring }}        
        </div>
    </div>
</body>
</html>

输出:

索引页:

index page

重定向后:

enter image description here

演示:

enter image description here

相关问题 更多 >