Flask #18: Применение WTForms для работы с формами сайта

Поделиться
HTML-код
  • Опубликовано: 27 авг 2024
  • Инфо-сайт: proproprogs.ru
    Основы работы с расширением Flask-WTF для автоматизации обработки форм на сайте. Рассматриваются классы: FlaskForm, StringField, PasswordField, BooleanField, TextAreaField, SelectField, SubmitField. Валидаторы: DataRequired, Email, Length. Методы формирования тегов в шаблонах: hidden_tag, label.
    Проект занятия: github.com/sel...
    WTForms: wtforms.readthedocs.io
    Валидаторы: wtforms.readth...

Комментарии • 36

  • @ne_zabyc_dadac
    @ne_zabyc_dadac 2 года назад +2

    Вдумчивое, глубокое, подробное изложение материала. Впрочем, как всегда

  • @govardkor8075
    @govardkor8075 4 года назад +4

    Про CSRF отдельное спасибо))

  • @user-ee1lx1pe7n
    @user-ee1lx1pe7n 2 года назад +1

    Спасибо!

  • @kirill89450
    @kirill89450 Год назад +1

    всё круто классно, спасибо за простое и понятное объяснение
    Единственное улучшить бы качество видео тк на большом мониторе 720 уже мылит)

    • @selfedu_rus
      @selfedu_rus  Год назад

      Многие на смартфонах смотрят, а там большее разрешение сделает все мелким.

  • @user-zt2yx7xh7r
    @user-zt2yx7xh7r Год назад +1

    Рассматривается в курсе возможность редактирования информации в БД через форму, формировать отчеты из данных и осуществлять скачивания данных форм автоматически?

  • @serg888fert4
    @serg888fert4 3 года назад +2

    у меня не работало, пока не проинсталировал email валидатор

  • @user-rz7ko4rc5q
    @user-rz7ko4rc5q Год назад +1

    а как писать обработку не на submit, а на любой клик, любое событие и как получать значения полей, которые стоят в цикле for?

  • @RayUa
    @RayUa 3 года назад +1

    Добрый день!
    А Вы не могли бы показать как использовать SelectMultipleField? Очень понадобилось, а найти что то способное к восприятию практически невозможно.
    Заранее спасибо!

  • @user-si7eo4zm1x
    @user-si7eo4zm1x 2 года назад +4

    Отличный курс.
    Однако конкретно по этому уроку у меня осталось смутное представление зачем мне эти формы нужны=)
    Кода стало больше, код стал более абстрактным.
    В чём профит?

    • @user-fy5fe5gn5j
      @user-fy5fe5gn5j Год назад

      В защите от злоумышленников

  • @series-alternativesandmeme7563
    @series-alternativesandmeme7563 Год назад +2

    У кого validate_on_submit всегда возвращает True?

    • @series-alternativesandmeme7563
      @series-alternativesandmeme7563 Год назад

      1. Убедитесь, что вы использовали правильный синтаксис и поставили скобки после validate_on_submit. Так как это вызываемый объект.

  • @user-hn7gb9ej9d
    @user-hn7gb9ej9d 4 года назад +2

    Спасибо большое! Какая разница между pip install flask_wtf и pip install Flask-WTF? Какую команду использовать?

    • @selfedu_rus
      @selfedu_rus  4 года назад

      ну, сайт pypi.org/project/Flask-WTF/ показывает команду pip install Flask-WTF, лучше ее и использовать

  • @user-gs2ti1qb1m
    @user-gs2ti1qb1m 4 года назад +1

    Спасибо большое за урок! Подскажите пожалуйста, откуда форма берет данные с пост запроса? Мы же даже при инициализации request.form не передаем

    • @selfedu_rus
      @selfedu_rus  4 года назад +1

      от браузера клиента, в объект request данные записываются автоматически самим Flask

  • @serg888fert4
    @serg888fert4 3 года назад +3

    надо через pip инсталировать валидатор email_validator

    • @undefinedundefined2459
      @undefinedundefined2459 3 года назад

      ну в видео же говорится об этом

    • @serg888fert4
      @serg888fert4 3 года назад +1

      @@undefinedundefined2459 да, говорится. Но я пропустил. Думаю, лишним комментарий не будет. И может быть кому-то поможет. Не только я такой невнимательный.

  • @schiller2k
    @schiller2k 4 года назад +1

    А в чем разница между InputRequired и DataRequired?
    Из документации:
    Note there is a distinction between this and DataRequired in that InputRequired looks that form-input data was provided, and DataRequired looks at the post-coercion data.
    Но что-то не понимаю этого, когда какую лучше использовать, нагуглил что лучше использовать InputRequired

    • @user-jt4tl7sx4w
      @user-jt4tl7sx4w 2 года назад

      насколько я понял, DataRequired смотрит, чтобы атрибут field.data был True, т.е. если его значение будет 0 или пустой строке, то он выдаст ошибку

  • @user-jt4tl7sx4w
    @user-jt4tl7sx4w 2 года назад +1

    8:26 почему тег обходится без закрывающегося тега?

    • @selfedu_rus
      @selfedu_rus  2 года назад

      лучше закрывать, но в простых ситуациях браузер корректно их и сам закрывает

  • @Yanis0071
    @Yanis0071 3 года назад

    Подскажите, а как к форме подключить стили, я видел есть flask_bootstrap, но не пойму как подключать свои ?

    • @selfedu_rus
      @selfedu_rus  3 года назад +1

      Очень просто, форма - это HTML-страница, в этой странице прописываете в разделе head внешний файл со своими стилями (css/styles.css) и они применятся к вашей странице.

    • @Yanis0071
      @Yanis0071 3 года назад

      @@selfedu_rus Извините, я имел ввиду, настроить стили для WTForms. Есть решение как настроить эти формы через расширение flask_bootstrap, а как настроить используя свои настройки CSS не понял.

  • @nikitaradionov4393
    @nikitaradionov4393 4 года назад

    selfedu, подскажите пожалуйста, что делает функция super() в шаблонах?

    • @selfedu_rus
      @selfedu_rus  4 года назад

      Она берет текст из блока наследуемого шаблона. Подробнее смотрите в серии занятий по Jinja

    • @nikitaradionov4393
      @nikitaradionov4393 4 года назад

      @@selfedu_rus понял, спасибо большое за обратную связь!

  • @nicovertrano5156
    @nicovertrano5156 3 года назад

    Ошибка в расшифровке CSRF: не Cross-Sire, а Cross-Site

    • @selfedu_rus
      @selfedu_rus  3 года назад

      спасибо, поправил

  • @donaldduck6042
    @donaldduck6042 Год назад

    Выдает ошибку - jinja2.exceptions.UndefinedError: 'forms.LoginForm object' has no attribute 'hidden_tag'. Решил убрать строку со скрытым токеном и вуаля- jinja2.exceptions.UndefinedError: 'wtforms.fields.core.UnboundField object' has no attribute 'label'/
    Как бороться с этим?

    • @donaldduck6042
      @donaldduck6042 Год назад +1

      Разобрался со своей оплошностью. Я забыл унаследовать LoginForm от FlaskForm