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