我遇到问题,在用ajax发布数据后我无法打开render_template。这是我的ajax代码。
@app.route('/evaluasiModel', methods=['POST',"GET"])
def evaluasiModel():
metodeSkoring = request.form['metodeSkoring']
metodeSkoring = int(metodeSkoring)
return render_template("evaluasiModelKlasifikasi.html", hasilSkoring = metodeSkoring)
这是我的服务器代码。
$('#restaurant_form').submit(function () {
$('.menu-row').each(function(){
var menu_entry = ""
$(this).find('.form-control').each(function(){
menu_entry = menu_entry + this.value + ","
})
$('#restaurant_form').append('<input type="hidden" name="menu_entries" value="'+ menu_entry +'" />')
alert(menu_entry)
})
})
我希望在将数据ajax发布到“def evaluasiModel()”之后,我可以打开render_template“evaluasiModelKlasifikasi.html”并获取数据metodeSkoring以显示在此模板中。
答案 0 :(得分:3)
为什么需要该帖子功能?您可以使用重定向从用户获取值后加载页面。
以下是如何操作的示例。我模拟了一个类似的场景。为此,我需要
RewriteCond %{REQUEST_URI} !\.(?:jpe?g|gif|bmp|png|ico|tiff|css|js)$ [NC]
:作为路线控制器application.py
:作为主要模板index.html
:作为重定向模板 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
<强>输出:强>
索引页:
重定向后:
演示:
答案 1 :(得分: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);
}
})
}