我正在尝试创建一个脚本与flask,增加或减少一个值10通过点击一个按钮。我已经有一个脚本,这样做的后端,但我有麻烦显示和动态更新这个值在前端。基本上,我想改变这个值在前端和后端在同一时间没有刷新页面。
以下是后端代码(缩短后包含相关页面):app.py
-培养瓶应用程序
from flask import Flask, render_template, url_for, request, jsonify
app = Flask(__name__)
#motor = Motor(17, 18)
def setBPM(current, change=0):
return ((current < 200) & (change > 0))*(current+change) + ((current > 30) & (change < 0))*(current+change)
@app.route('/pulse')
def pulse():
return render_template("pulse.html")
@app.route('/pulseUP', methods=['POST'])
def pulseUp():
BPM = setBPM(BPM, 10)
return (render_template('pulse.html', get_BPM_var=BPM))
@app.route('/pulseDOWN', methods=['POST'])
def pulseDwn():
BPM = setBPM(BPM, -10)
return (render_template('pulse.html', get_BPM_var=BPM))
@app.context_processor
def get_BPM_var():
return dict(get_BPM_var=BPM)
if __name__ == "__main__":
app.run(debug=True)
前端-pulse.html
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=800px, inital-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" href="{{ url_for('static', filename='css/main.css') }}"
</head>
<body>
<div class="parent">
<div class="child">
<div id="grid-pulse">
<div class="cell-pulse">
<form action="/pulseUP/" method="post"><input type="submit" value="+" /></form>
</div>
<div class="cell-pulse"></div>
<div class="cell-pulse">
<div class="numbkgnd">
<h3 id="BPMID">{{ get_BPM_var }} BPM</h3>
</div>
</div>
<div class="cell-pulse"></div>
<div class="cell-pulse">
<form action="/pulseDOWN/" method="post"><input type="submit" value="-" /></form>
</div>
<div class="cell-pulse"></div>
</div>
</div>
</div>
<script>
$("#BPMID").keyup(function () {
var text = $(this).val();
$.ajax({
url: "/pulse",
type: "get",
data: { jsdata: text },
success: function (response) {
$("#BPMID").html(response);
},
error: function (xhr) {
}
});
});
</body>
</html>
我试着用 AJAX 来更新值,但是我一点也不懂javascript。任何帮助都会非常感谢!!
1条答案
按热度按时间iqjalb3h1#
我的示例基于range slider,它的值对应于发送到服务器的速度,该值可以以10为增量增加或减少。
当触发一个change事件时,浏览器使用Fetch API向服务器发送一个AJAX POST类型的请求,这个JSON格式的请求包含了滑块的当前值。
服务器设置接收到的值,只要在允许的范围内,并以当前的速度以JSON格式回复,收到回复后,现在调整浏览器中的输出,即将值输出为文本,并设置为滑块的新值。
除了滑块外,还有两个按钮可以用来设置值,按下按钮可以设置滑块的值并触发其change事件,之后的过程保持不变。