Web-разработка с использованием Ruby
НАВИГАЦИЯ ПО СТРАНИЦЕ
Sinatra — это минималистичный веб-фреймворк для Ruby, предназначенный для быстрого создания веб-приложений. В отличие от более тяжеловесных фреймворков, таких как Ruby on Rails, Sinatra предлагает простой и легковесный подход.
Установка Sinatra
Для начала работы с Sinatra, убедитесь, что у вас установлен Ruby и RubyGems. Затем установите Sinatra с помощью команды:
gem install sinatra
Пример Простого Веб-Приложения
Создайте файл app.rb с следующим содержанием:
# app.rb
require 'sinatra'
get '/' do
'Привет, мир!'
end
Запуск Веб-Приложения
В командной строке перейдите в каталог, содержащий ваш файл app.rb, и выполните команду:
ruby app.rb
После этого ваше веб-приложение будет доступно по адресу http://localhost:4567 в веб-браузере.
Маршруты в Sinatra
Sinatra использует простой синтаксис для определения маршрутов и их обработчиков. Вот примеры различных маршрутов:
# Определение маршрута для HTTP-запроса GET по корневому пути
get '/' do
'Главная страница'
end
# Определение маршрута с параметром
get '/hello/:name' do
"Привет, #{params[:name]}!"
end
# Определение маршрута для обработки POST-запроса
post '/submit' do
'Данные отправлены!'
end
Интеграция с Шаблонизаторами
Sinatra интегрируется легко с различными шаблонизаторами, такими как ERB, Haml, Slim. Пример использования ERB:
# Использование ERB для шаблонов
get '/template' do
@name = 'Мир'
erb :template
end
Создайте файл views/template.erb:
<!-- views/template.erb -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Привет, <%= @name %></title>
</head>
<body>
<h1>Привет, <%= @name %></h1>
</body>
</html>
Использование Статических Файлов
Чтобы обслуживать статические файлы, такие как изображения, стили и скрипты, добавьте следующую строку в ваше приложение:
# Поддержка статических файлов из каталога public
set :public_folder, 'public'
Поместите статические файлы в каталог public.
Middleware в Sinatra
Sinatra также поддерживает middleware, что позволяет легко добавлять дополнительные функциональные возможности, такие как логгирование, обработка исключений и др.
# Пример middleware для логгирования запросов
class RequestLogger
def initialize(app)
@app = app
end
def call(env)
puts "Received request: #{env['REQUEST_METHOD']} #{env['REQUEST_PATH']}"
@app.call(env)
end
end
use RequestLogger
Sinatra предоставляет простой и элегантный способ создания веб-приложений на Ruby. Он идеально подходит для маленьких и средних проектов, где необходимо быстро развернуть прототип или создать простое веб-приложение.