首先声明我是一个新手程序员,如果我的问题很愚蠢,请见谅。
我试图通过 ajax 从 jquery 传递两个变量到烧瓶,但我不能。我读过很多帖子,但没有一个适合我。
我有一个输入,可以用两个 + 和 - 按钮加减 1。我想传递那个数量和一个字符串变量来更新数据库。我已经尝试过使用 url 和 json 中的参数,但我无法使用。
我希望我已经解释了自己
谢谢
AJAX
$('.control-number-btn').on('click', function(e) {
let value = $('#value-' + id).text();
let sensor = 'limit-' + id;
$.ajax({
type: 'POST',
url: '/ajax',
data: { 'newValueVar': value, 'sensorVar': sensor },
success: function(html) {
}
})
})
蟒蛇
@app.route('/ajax', methods=['GET', 'POST'])
def ajax():
with conexion.cursor() as cursor:
consulta = 'UPDATE sensor_data SET value=%s WHERE sensor=%s;'
newValue = request.args.get('newValueVar')
sensor = request.args.get('sensorVar')
cursor.execute(consulta, (newValue, sensor))
conexion.commit()
return ('nothing')
解决方案:
我发现了错误,我需要添加 if request.method ==' POST '
并将 request.args.get ()
替换为 request.values.get ()
蟒蛇:
@app.route('/ajax', methods=['GET', 'POST'])
def ajax():
if request.method == 'POST':
newValue = request.values.get('newValueVar')
sensor = request.values.get('sensorVar')
with conexion.cursor() as cursor:
consulta = 'UPDATE sensor_data SET value=%s WHERE sensor=%s;'
cursor.execute(consulta, (newValue, sensor))
conexion.commit()
# conexion.close()
return ('nothing')