Вот приложение для проверки концепции:
. / App.py
from flask import Flask, jsonify, request, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
@app.route('/calc', methods=['POST'])
def calc_estimation():
text = request.form['text']
results = process_text(text)
return jsonify(results)
def process_text(text: str) -> str:
return [text.upper()] * 10
if __name__ == '__main__':
app.run()
. / Шаблоны / index.html
window.addEventListener ('DOMContentLoaded', init);
функция init () {
const form = document.querySelector ('[data-calc-form]');
const textInput = document.querySelector ('[name = text]');
const preview = document.querySelector ('[data-preview]');
form.addEventListener ('submit', async (e) => {
e.preventDefault ();
const text = textInput.value;
const results = await fetchEsvaluations (текст);
preview.textContent = JSON.stringify (results, null, 4);
});
}
асинхронная функция fetchEstimates (текст) {
const payload = new FormData ();
payload.append ('текст', текст);
const res = ожидание получения ('/ calc', {
метод: «пост»,
тело: полезная нагрузка
});
оценка const = await res.json ();
оценка возврата;
}
Когда вы запускаете приложение, вы получаете страницу, подобную этой:
Когда вы вводите текст и нажимаете «Рассчитать», вы получаете результат, напечатанный в <pre>
Как вы используете ответ JSON, зависит от вас, здесь я просто отобразил его как есть.