IscanderChe
30 квітня 2024 р. 13:22

Во Flask рендер шаблона не передаётся в браузер

Python, Flask

Доброе утро!

Имеется вот такой шаблон:

  1. <!doctype html>
  2. <html>
  3. <head>
  4. <title>{{ title }}</title>
  5. <link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap-5.3.2/css/bootstrap.min.css') }}">
  6. <script src="{{ url_for('static', filename='css/bootstrap-5.3.2/js/bootstrap.bundle.min.js') }}"></script>
  7. <script src="{{ url_for('static', filename='js/script.js') }}"></script>
  8. </head>
  9. <body>
  10. <p>Tag: {{ tag }}, Button: {{ button }}</p>
  11. <form id="tag_form" method="POST">
  12. <label for="text">Tag</label> <input id="text" name="text" size="20" type="text" value="">
  13. <button id="btn" type="button" class="btn btn-outline-secondary btn-sm" data-bs-toggle="button">Personal</button>
  14. <input id="submit" name="submit" type="submit" value="Add tag">
  15. </form>
  16. </body>
  17. </html>

JS-скрипт прикрепляет к POST-запросу дополнительные данные:

  1. document.addEventListener('DOMContentLoaded', (event) => {
  2. form = document.getElementById('tag_form');
  3.  
  4. function readButton(event) {
  5. event.preventDefault();
  6. const formSent = new FormData(form);
  7. const xhr = new XMLHttpRequest();
  8. const button = document.getElementById('btn').getAttribute('aria-pressed')
  9. formSent.append('button', button);
  10. xhr.open('POST', 'http://127.0.0.1:5000');
  11. xhr.send(formSent);
  12. return false;
  13. }
  14.  
  15. form.addEventListener('submit', readButton);
  16. });

Python-обработчик эти данные корректно принимает:

  1. from flask import Flask
  2. from flask import render_template, request
  3.  
  4. app = Flask(__name__)
  5.  
  6. @app.route('/', methods=['GET', 'POST'])
  7. def print_form_data():
  8. if request.method == 'POST':
  9. tag = request.form.get('text')
  10. button = request.form.get('button')
  11. return render_template('index.html', title='Add tag', tag=tag, button=button) # эта строка шаблон с полученными данными не выводит
  12. return render_template('index.html', title='Add tag') # эта строка выводит шаблон

В консоли браузера ответ получается корректно, а на самой страничке ничего не показывается. Почему?

1

Вам це подобається? Поділіться в соціальних мережах!

0

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
  • Останні коментарі
  • Evgenii Legotckoi
    16 квітня 2025 р. 17:08
    Благодарю за отзыв. И вам желаю всяческих успехов!
  • IscanderChe
    12 квітня 2025 р. 17:12
    Добрый день. Спасибо Вам за этот проект и отдельно за ответы на форуме, которые мне очень помогли в некоммерческих пет-проектах. Профессиональным программистом я так и не стал, но узнал мно…
  • AK
    01 квітня 2025 р. 11:41
    Добрый день. В данный момент работаю над проектом, где необходимо выводить звук из программы в определенное аудиоустройство (колонки, наушники, виртуальный кабель и т.д). Пишу на Qt5.12.12 поско…
  • Evgenii Legotckoi
    09 березня 2025 р. 21:02
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    09 березня 2025 р. 16:14
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…