Программирование на языке Ruby
Шрифт:
Если необходимо решение на основе шаблонов, возможно, подойдет библиотека Amrita . Обратите также внимание на Cerise — сервер приложений на базе Amrita .
Наверное, существуют и другие библиотеки. Если вы не нашли того, что искали, среди упомянутых здесь продуктов, обратитесь к поисковой машине или задайте вопрос в конференции.
19.1.1. Введение в библиотеку cgi.rb
Библиотека
Инициализатор класса CGI принимает единственный параметр — уровень спецификации языка HTML, который должен поддерживаться методами генерации разметки, входящими в пакет CGI. Эти методы избавляют программиста от ручного написания длинных фрагментов экранированной разметки в достаточно простом коде на Ruby:
Здесь мы почти точно воспроизвели функциональность предыдущей программы, воспользовавшись библиотекой CGI. Как видите, класс
Отметим, что в данном примере нам понадобилось только значение, возвращаемое блоком; HTML-разметка строится постепенно и сохраняется, а не выводится сразу же. Это означает, что конкатенировать строки абсолютно необходимо, иначе мы увидели бы только последнюю вычисленную строку.
В классе
Аналогично класс
19.1.2. Вывод и обработка форм
Наиболее распространенный способ взаимодействия с CGI-программой — форма. HTML-формы создаются с помощью специальных тегов, которые браузер представляет в виде элементов ввода данных. Подробное их обсуждение выходит за рамки данной книги, но существует немало книг и онлайновых руководств по этому предмету.
В классе
Здесь отображается многострочное поле ввода, текст в котором разбивается на слова и выводится в обратном порядке. Так, если набрать фразу «This is a test», то после обработки вы увидите «test a is This». Метод
В этом примере демонстрируется лишь малая толика элементов форм, которые могут встречаться на HTML-странице. Полный перечень вы найдете в любом руководстве по HTML.
19.1.3. Куки
Мы уже упоминали, что HTTP — протокол без состояния. Это означает, что после того как сервер закончил обрабатывать запрос, он не может сказать, пришел ли следующий запрос от того же или какого-либо другого браузера. Тут-то и приходят на помощь куки (cookies) — способ, быть может, несколько грубоватый, сохранить состояние между последовательными запросами от одного и того же браузера.
Механизм куков работает следующим образом. Сервер посылает браузеру команду (в виде HTTP-заголовка) с просьбой сохранить пару имя-значение. Данные могут храниться в памяти или на диске. При каждом последующем запросе к любому серверу из домена, указанного в куке, браузер пошлет сохраненные данные в HTTP-заголовке.
Соперница
Детективы:
классические детективы
рейтинг книги
Земля лишних. За други своя
2. Земля лишних
Фантастика:
боевая фантастика
рейтинг книги
Ловите конский топот. Том 1. Исхода нет, есть только выходы...
15. Одиссей покидает Итаку
Фантастика:
альтернативная история
рейтинг книги
История Великобритании
Национальная история
Научно-образовательная:
история
рейтинг книги
На границе империй. Том 8
12. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
рейтинг книги
Ткущая. Обманутые секунды
3. Ткущая
Любовные романы:
любовно-фантастические романы
рейтинг книги
Ванесса
1. Эросфера
Любовные романы:
эро литература
рейтинг книги
Дом в овраге
MYST. Черная книга 18+
Детективы:
триллеры
рейтинг книги
Оборотни. Естественный отбор.
1. Оборотни
Фантастика:
фэнтези
рейтинг книги
Ледяной Сфинкс
Приключения:
прочие приключения
путешествия и география
рейтинг книги
Первый среди равных. Книга X
10. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
рейтинг книги
ТВ - эволюция нетерпимости
Документальная литература:
прочая документальная литература
рейтинг книги