@platonlukyanov2007
Начинающий Python-разработчик

Стоит ли использовать Django Forms, WTForms и т.д.?

Порой используя веб-формы в различных бэкенд веб-фреймворках мы вынуждены писать свои виджеты, валидаторы и т.д. При этом многие части кода форм касаются исключительно фронтенда: объявление атрибутов, стилей.
Я подумал, что это ведет к неправильному разделению кода, однако во всех книгах и туториалах формам отводится достаточно много времени.
Целесообразно ли использовать технологии валидации форм на стороне бэкенда и их генерации? И если да, то как понять, когда использовать JS библиотеки, а когда серверную часть?
  • Вопрос задан
  • 177 просмотров
Решения вопроса 1
@dimuska139
Backend developer
Вот по этой причине я ушёл в сторону разделения фронтенда и бэкенда. Бэкенд - API, работающее с JSON, а весь фронтенд - это React/Angular/Vue приложение. Валидацию в таком случае надо делать и на фронтенде и на бэкенде, либо только на бэкенде. Конечно, с точки зрения удобства использования вариант валидации на фронтенде и на бэкенде выглядит более интересным, т.к. для валидации не требуется делать запрос на сервер. В то же время тут могут быть сложности с соответствием валидаторов на сервере и фронтенде (если это очень трудоёмко, то можно валидацию оставить только в бэкенде). Плюс такого разделения заключается в том, что вся работа с формами, стилями, виджеты и прочая интерфейсная часть с бэкендом вообще никак не пересекается. Код получается более простым для сопровождения (нет каши), кроме того легко разделяются обязанности.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dmtrrr
Backend developer
Если не валидировать данные на бэкенде, то ваш сервсис очень быстро сломают.
Ответ написан
Комментировать
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
В больших проектах у меня нигде такое не использовалось.
Разве что для кастомизации штатной админки Django.
Везде рисуются кастомные виджеты и формы на фронте. А при отправке данных на сервер через апи просто происходит валидация на стороне бекенда, который при ошибках отдает фидбек обратно на фронт.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы