Общение с службой REST с использованием Python/Flask, JavaScript и AjaxPython

Программы на Python
Anonymous
 Общение с службой REST с использованием Python/Flask, JavaScript и Ajax

Сообщение Anonymous »

У меня есть веб -приложения, получая данные из базы данных, стоящей за службой REST Создание вывода в форме таблицы:

Как вы видите, есть две кнопки (собирать/архив) в каждой строке таблицы, разрешающей, позволяя разрешить, что позволяет получить Пользователь обновляет базу данных через другую службу REST, которая принимает данные через HTML PUT. Когда кнопка нажимается, выполняется следующий код: < /p>

Код: Выделить всё

function updateSourceState(sourceTypeId, sourceId, dataForUpdate) {
$.ajax({
url: '/update',
data: {source_type_id: sourceTypeId, source_id: sourceId, data_for_update: dataForUpdate},
dataType: 'json',
type: 'PUT',
success: function (data) {
console.log('Data updated successfully');
},
error: function(data) {
console.log('Data update failed. Response: ' + data);
}
}).done(function() {
console.log('DONE: data updated successfully');
}).fail(function(msg) {
console.log('FAIL: data update failed: ' + msg);
}).always(function(msg) {
console.log('ALWAYS message: ' + dataForUpdate + ', url: ' + url);
});
}
< /code>
Общение с службой REST реализуется с использованием Python-Flask и JavaScript. Основная программа (webviewer.py) определяет такие маршруты, как это: < /p>
@bp.route('/update', methods=['PUT'])
def update_source_state():
app.logger.debug('[DEBUG] entering update_source_state()')

source_id = request.args.get('source_id')
source_type = request.args.get('source_type_id')
dataForUpdate = request.args.get('data_for_update')

url = '{0}/{1}/source/{2}'.format(ARCHIVE_CONFIG_BASE_URL, source_type, source_id)
response = requests.put( url=url
, data=dataForUpdate
, headers={'Content-Type': 'application/json', 'accept': 'application/json'}
)

if response.status_code == 200:
return jsonify({'status': 'success'}), 200
elif response.status_code == 405:
return jsonify({'status': 'method not allowed'}), 405
elif response.status_code == 500:
return jsonify({'status': 'server error'}), 500
else:
return jsonify({'status': 'failed'}), 600
Я вижу в отладке браузера, что javascript updatesourcestate () вызывается и переменные заполнены. Однако в методе Update_source_state () request.args не все. Похоже, что аргументы не передаются от JavaScript в Flask/Python. Любая помощь оценена.

Подробнее здесь: https://stackoverflow.com/questions/793 ... t-and-ajax

Вернуться в «Python»