Использование библиотеки Sinatra для создания веб-приложений
Информация по теме
Цель: познакомиться с принципами организации веб-приложений в экосистеме Ruby, научиться писать простые приложения с использованием веб-библиотеки Sinatra.
Документация
- Описание протокола HTTP
- Список методов протокола HTTP
- Описание языка разметки страниц HTML
- Официальная страница проекта Sinatra
- Официальное введение в Sinatra на русском языке
- Официальное руководство по Sinatra
- Документация по Sinatra Reloader
- Хорошее введение на английском языке в шаблоны ERB
- Краткое введение на русском языке в шаблоны ERB
- Набор руководств от сообщества по использованию библиотеки
- Документация на CSS-фреймворк Foundation для сайтов
Книги
Презентация
Код, написанный на занятии можно скачать по данной ссылке. Для распаковки архива используйте команду 7z x 2017-11-28.7z
.
Практическое занятие
Цель занятия: научиться создавать простые веб-приложения, принимающие ввод данных от пользователя.
Задача: необходимо создать сайт, позволяющий пользователям решать простые задачи из задачника. Сайт помимо решения этих задач, позволяет пользователю узнать информацию о его создателе.
Сайт должен содержать в себе следующие страницы:
- Главная страница, содержащая ссылки на все другие страницы, а также описание решаемой задачи.
- Страница для ввода данных для решения задачи №1 из пункта 1.2 задачника.
- Страница для вывода решения задачи №1.
- Страница для показа информации о создателе приложения.
Общий макет страниц должен содержать навигационную панель, с которой можно перейти на главную страницу, страницу ввода информации, а также страницу для показа информации о создателе сайта.
Главная страница должна содержать описание назначения данной системы.
Страница для ввода данных должна содержать в себе форму для ввода данных. На форме должно быть три поля для ввода числа и кнопка для выполнения запроса на вычисление.
Страница для вывода решения должна содержать в себе не только результат вычисления, но также и введённые данные.
Страница о создателе приложения должна содержать фотографию создателя.
Предлагаемый подход к решению задачи
- Добавьте в Gemfile зависимости
sinatrta
иsinatra-contrib
и установите эти пакеты. - Создайте файл
main.rb
, в котором подключите автоматическую перезагрузку страницы при изменении файла. - Добавьте обработчик маршрута по умолчанию
'/'
, выведите пользователю сообщение ‘Маршрут работает’. - Запустите приложение
main.rb
и откройте браузер по ссылкеhttp://localhost:4567
и убедитесь, что всё работает. - Добавьте файл
views/layout.erb
, в котором разместите ссылки на все необходимые страницы. - Добавьте файлы в каталог
views
, которые описывают содержимое каждой страницы. - Реализуйте обработку передаваемых пользователем данных со страницы ввода данных. Обработку запроса метод должен завершать переадресацией на страницу вывода информации (с помощью метода
redirect
). Передачу данных от одного ресурса к другому осуществляете с помощью механизма сессий. - Хранение данных в переменных модуля запрещено.