【发布时间】:2021-08-17 01:59:07
【问题描述】:
在成功提交表单发布后如何进行 ajax 发布。我想获取表单上提交的输入,根据该输入进行一些计算,并将结果显示在前端而不刷新页面。
烧瓶
@app.route('/', methods=['GET', 'POST'])
def app_home():
if request.method == 'POST':
input_amount = request.form['input_amount']
input_amount = float(input_amount)
amount1 = input_amount * 12
amount2 = input_amount * 10
return render_template("index.html", amount1=amount1,amount2=amount2,)
return render_template("index.html")
if __name__ == '__main__':
app.run(debug=True)
index.html
<form method="post">
<div class="mb-3">
<label>Enter amount</label>
<input name = "input_amount" type="text" class="form-control" placeholder="amount">
</div>
<button type="submit" class="btn btn-success">Submit</button>
</form>
<div class="container">
<p id = "response">result is: ${{amount1}}</p>
<p id = "response">result is: ${{amount2}}</p>
</div>
AJAX 请求
<script>
$(document).ready(function () {
$('form').on('submit', function (event) {
$.ajax({
data: { input_amount : input_amount},
type: 'POST',
url: '/'
})
.done(function (data) {
$('#response').text(data.output).show();
});
event.preventDefault();
});
});
</script>
【问题讨论】:
-
您需要不同的设置。正确的流程如下: (1) 用户通过 Flask 函数请求网页,该函数通过
render_template函数返回; (2) 用户输入内容并按下“提交”按钮,该按钮激活一个 Javascript 函数,该函数将 POST 请求发送到返回json的 另一个 Flask 函数(计算发生在此步骤的 Python 部分) ; (3) JS函数获取返回的json并相应更新网页。