IscanderChe
April 30, 2024, 1:22 p.m.

Во 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

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
  • A
    Oct. 19, 2024, 5:19 p.m.
    Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html