Мне нужно отправить входные данные формы в Python Flask без перезагрузки страницы или кнопки отправки. Я использую объект XMLHttpRequest для отправки входных данных, но не могу получить его из Python Flask.
HTML часть:
<form method = "POST">
<div class = "Enter">
<div class = "MM">Management Module Name:<span style = "margin-left: 66px;"></span>
<input type = "text" id = "MM" class = "input" name = "MM" placeholder = "MM name as seen in temip_enroll -d" required>
</div>
</form>
JS-часть:
var input = document.getElementById('MM')
input.addEventListener('keyup',e => {
var mm_name = e.target.value
const request = new XMLHttpRequest()
request.open('POST',"Enter",true)
request.send(e.target)
console.info(mm_name)
})
Код Python:
@app.route('/Enter', methods = ['POST','GET'])
def enter_case():
if request.method == 'POST':
MM = request.form.get('MM')
print(MM)
это печатает "Нет"
Вы отправляете на сервер необработанные неформатированные данные. По этой причине вы можете запросить это через request.data
на сервере.
Если вы хотите отправить данные в виде формы, вы можете использовать объект FormData
. Тогда запрос после получения возможен через request.form
.
const input = document.getElementById('MM');
input.addEventListener('keyup', e => {
const formData = new FormData();
formData.append('MM', e.target.value);
const xhr = new XMLHttpRequest();
xhr.open('POST', '/enter', true);
xhr.send(formData);
});
Я мог бы получить переменную JS, используя ниже в python MM = request.data