2017-10-15 99 views
0

我有一个问题,我不能打开render_template之后发布数据与Ajax。这是我的ajax代码。在FLASK中如何使用ajax发布模板后的模板?

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

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

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

这是我的服务器代码。

@app.route('/evaluasiModel', methods=['POST',"GET"])    
def evaluasiModel(): 
    metodeSkoring = request.form['metodeSkoring'] 
    metodeSkoring = int(metodeSkoring) 
    return render_template("evaluasiModelKlasifikasi.html", hasilSkoring = metodeSkoring) 

我希望POST数据阿贾克斯后,“高清evaluasiModel()”,我可以打开render_template“evaluasiModelKlasifikasi.html”而获得的数据metodeSkoring在此模板显示。

+0

对不起,我不知道Python或烧瓶中,但如果我理解正确的话,该行'回报render_template( “evaluasiModelKlasifikasi.html”,hasilSkoring = metodeSkoring) '返回一个你想在你的主html代码的某个地方显示的html代码。那是对的吗? –

+0

是的,正确的。但我不能显示这个HTML。在我从ajax获得数据后 –

+0

检查我的答案。你不需要在响应中放置html代码的位置(在'div'等内部)。我已经给你一个例子加入它的身体 –

回答

1

您必须在ajax调用的成功函数中添加来自响应的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); 
     } 
    }) 
} 
2

你为什么需要这个职位的功能?您可以在使用重定向从用户获取值之后简单地加载页面。

下面是一个示例如何实现。我模拟了一个类似的场景。对于我需要

  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

<!DOCTYPE html> 
<html> 
<head> 
    <title>Index</title> 
    <script 
    src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 
</head> 
<body> 
    <div id="container"> 
     <input type="text" id="mentodeNegasi" /> 
     <button id="get_button">Get score</button> 
    </div> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
      $("#get_button").on("click",function(){ 
       var skoring = $("#mentodeNegasi").val(); 
       window.location.href = '/evaluasiModel/'+skoring;       
      }) 
     }) 
    </script> 
</body> 
</html> 

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

+0

谢谢先生,我会尝试我的代码。 –