Что такое HTML::FormFu в perl

Что такое HTML::FormFu в perl. Как использовать HTML::FormFu, простые примеры. Создание форм, обработка данных. Введение в HTML::FormFu для начинающих.

 

Что такое HTML::FormFu и для каких задач его можно использовать

HTML::FormFu — это фреймворк для работы с формами. Предоставляет инструментарий для создания и проверки форм, загрузки и обновления данных, включая сохранение полученных данных в БД.

Благодаря дополнительным плагинам, HTML::FormFu может использоваться совместно с Catalyst и DBIx::Class.

HTML::FormFu считается одной из самых функциональных систем для работы с формами в Perl. Кроме него, популярны Form::Processor, CGI::FormBuilder, HTML::FormFu, Rose::HTML::Form.

CGI::FormBuilder имеет схожую с HTML::FormFu функциональность, но HTML::FormFu считается более гибким и мощным.

На мой взгляд, HTML::FormFu, действительно, потрясающе мощный инструмент, основным недостатком которого является отсутствие нормальных руководств по использованию. Очень мало примеров применения. Даже в англоязычном сегменте интернета, про русскоязычный даже говорить не стоит. Из-за этого, первое знакомство с HTML::FormFu вызывает смешанные чувства: «Зачем сюда запихали этого мамонта, неужели нельзя было сделать проще?»

 

Возможности HTML::FormFu

1. Создание форм

HTML::FormFu генерирует html-код формы на основе конфигурационных данных.

2. Заполнение форм

HTML::FormFu может добавить данные в созданную форму. Например, значения по-умолчанию, или повторное заполнение формы данными, в случае, возникновения ошибок при обработке полей.

3. Проверка введенных в форму данных

HTML::FormFu может проверить введенные пользователем данные на соответствие заданным условиям.

4. Вывод ошибок

С помощью HTML::FormFu можно проверить введенные пользователем данные, и если обнаружены ошибки — вывести сообщение, и выделить поля с некорректными данными.

5. Сохранение данных

HTML::FormFu может помочь вам сохранить введенные данные в БД.

 

Простые примеры использования HTML::FormFu

Для того, чтобы можно было использовать HTML::FormFu, желательно установить модули CGI и Template.

 

Создание и вывод формы с помощью HTML::FormFu. Пример 1

Для реализации простейшей формы на HTML::FormFu, создаем три файла: yml-конфиг, perl-скрипт и шаблон template toolkit.

Приведенный ниже пример — это только создание формы. Без обработки и сохранения введенных пользователем данных.

Perl-скрипт form.pl

Конфиг form.yml

Шаблон template.html

После того, как все файлы созданы, запускаем web-сервер (я использовала Apache) и вводим в адресной строке браузера: http://localhost:8080/cgi-bin/form.pl.

Будет выведено два поля для ввода логина и пароля, и кнопка «Отправить запрос». Все это будет аккуратно обведено тонкой рамочкой.

 

Создание и вывод формы с помощью HTML::FormFu. Пример 2

Второй пример использования HTML::FormFu в perl рассматривает создание и вывод формы на html-странице, без создания yml-конфига. Параметры формы задаются непосредственно в скрипте.

Создаем два файла: perl-скрипт и шаблон template toolkit.

Perl-скрипт form.pl

Шаблон template.html

 

Создание, вывод формы, обработка введенных данных с помощью HTML::FormFu. Пример 3

Третий вариант создания формы. Точно так же, как и во втором варианте, конфигурационные данные формы содержатся в скрипте. Но задаются не с помощью отдельных методов, а сразу, в общем большом хеше.

Кроме того, в скрипт добавлены элементы обработки формы. Получаем данные, проверяем их, возвращаем ошибку, если юзер не подходящий.

Perl-скрипт form.pl

Небольшой комментарий. Несмотря на такой изысканный способ получения введенных в форму данных, через методы объекта HTML::FormFu, данные можно получить с помощью обычного CGI. Иногда это может оказаться полезным.

Шаблон template.html

 

Полезные ссылки

search.cpan.org: HTML::FormFu

search.cpan.org: HTML::FormFu Manual ConfigurationFiles

search.cpan.org: HTML::FormFu Manual Cookbook

Что такое HTML::FormFu в perl: 5 комментариев

  1. Natalie Автор записи

    Спасибо! Кажется, я уже встречала это имя — HTML::FormHandler. Но, совершенно точно, не пользовалась. У вас есть опыт использования HTML::FormHandler? Какие впечатления? Удобно? Глючно?

  2. ^C

    Удобно, но после того как разобрался как оно работает, разбираться пришлось по примерам, потому как документации маловато будет.

  3. Natalie Автор записи

    Кстати, м.б. кто-нибудь знает — есть ли менеджеры форм в Ruby, и если да — то какие самые популярные?

  4. zzz

    HTML::FormFu — открываем раздел «зависимости», ужасаемся и закрываем обратно…

Комментарии запрещены.