Я пытаюсь разработать веб-приложение с Flask и HTML, и сейчас мне нужно получить пользовательский ввод, передать его в Python бэкэнд, выполнить функцию и вернуть ее вывод , поместив его внутри элемента HTML. Я также хочу, чтобы это происходило без обновления страницы HTML.
Как я могу это сделать? Ниже у меня есть код, который я разработал до сих пор, но он не работает правильно:
Мой HTML:
<div id="ThroughputRate" class="data_entry">
<form action="{{ url_for('background_check_throughputrate') }}" method="post">
<input name="throughput_rate_text" class="input_box">
<input id="checkThroughputRate" type="submit" class='new-button-data' value="Check Throughput Rate">
<output name="throughputRateResult" class="result_box" ></output>
</form>
</div>
Мой Flask бэкэнд:
@app.route('/background_check_throughputrate', methods=['GET', 'POST'])
def background_check_throughputrate():
if request.method == 'POST':
text = request.form['throughput_rate_text']
processed_text = str(text)
throughput = transition_throughput_rate(processed_text)
return jsonify(throughput)
My HTML (продолжение, чтобы получить выходные данные функции, выполняемой на Flask):
<script type=text/javascript>
$(function() {
$('a#checkThroughputRate').bind('click', function() {
$.getJSON('/background_check_throughputrate', function(data) {
console.log(data);
document.getElementById('throughputRateResult').innerHTML = data;
});
return false;
});
});
</script>
Идея моего выполнения заключается в том, что пользователь использует первый фрагмент кода (в HTML) для вставки ввода этот вход передается во второй фрагмент кода (в flask) и, наконец, вывод функции передается в последний фрагмент кода (в JS внутри HTML) чтобы его можно было отобразить на соответствующем элементе HTML.
Пока что входные данные правильно обрабатываются внутри flask, но проблема в том, что когда функция возвращает jsonify, она появляется на экране вместо того, чтобы отправлять ее во внешний интерфейс. Что я делаю неправильно?
Спасибо всем