Основы Play Framework
Начните работу с Play, изучите его архитектуру и настройте своё первое веб-приложение.
«Основы Play Framework» — бесплатный урок Scala for Backend Engineering & Functional Programming на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Scala for Backend Engineering & Functional Programming, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Scala for Backend Engineering & Functional Programming содержит 3 уроков всего.
Введение во фреймворк Play
Добро пожаловать во фреймворк Play! Play — это мощный веб-фреймворк с открытым исходным кодом для Scala и Java.
Он предназначен для создания современных веб-приложений и API с высокой масштабируемостью, уделяя особое внимание продуктивности разработчиков и производительности.
Реактивное и асинхронное ядро
Play построен на реактивной основе и использует Akka. Это означает, что по умолчанию он обрабатывает запросы асинхронно и неблокирующим образом.
- Реактивность: эффективная обработка множества одновременных запросов.
- Асинхронность: операции не блокируют поток сервера.
- Отсутствие состояния: приложение рассчитано на горизонтальное масштабирование, поэтому хорошо подходит для микросервисов.
Создание проекта Play
Чтобы начать новый проект Play, вы будете использовать SBT (Scala Build Tool) с шаблоном-заготовкой Play. Убедитесь, что SBT установлен.
Выполните эту команду в терминале:
sbt new playframework/play-scala-seed.g8Эта команда создаст новый каталог проекта с базовой структурой приложения Play на Scala.
Структура проекта Play
Проект Play имеет чётко определённую структуру каталогов:
app/: содержит исходный код Scala (контроллеры, модели, представления).conf/: содержит файлы конфигурации, напримерroutes(сопоставление URL) иapplication.conf.public/: содержит статические ресурсы (JavaScript, CSS, изображения).project/: содержит файлы определения сборки SBT (например,build.sbt).test/: содержит тесты приложения.
Сопоставление URL с `routes`
Файл conf/routes имеет ключевое значение. Он определяет, как HTTP-запросы (метод и путь) сопоставляются с определёнными действиями контроллеров в приложении.
В каждой строке указываются HTTP-метод, путь URL и метод контроллера, который нужно вызвать.
# conf/routes
GET / controllers.HomeController.index()
GET /hello/:name controllers.HelloController.sayHello(name: String)Создание контроллеров Play
Контроллеры — это объекты (или классы) Scala, которые обрабатывают входящие HTTP-запросы. Они содержат функции действий, обрабатывающие запросы и возвращающие результаты.
Обычно контроллеры расширяют BaseController, а ControllerComponents передаются им через внедрение зависимостей.
package controllers
import play.api.mvc._
import javax.inject._
@Singleton
class HomeController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
// Action functions go here
}Определение логики действий
Функция действия — это основная логика внутри контроллера. Она принимает неявный Request и возвращает Result (например, Ok, NotFound, Redirect).
Блок Action { ... } оборачивает ваш код, превращая его в корректное действие Play.
// Inside HomeController
def sayHello(name: String) = Action { implicit request =>
Ok(s"Hello, $name! Welcome to Play.")
}Динамический HTML с Twirl
Play использует шаблоны Twirl (файлы .scala.html) для создания динамических ответов HTML. Они позволяют встраивать код Scala непосредственно в HTML.
Шаблоны типобезопасны и компилируются, поэтому ошибки обнаруживаются на раннем этапе.
@* app/views/welcome.scala.html *@
@(userName: String)
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome, @userName!</h1>
<p>This page was generated by a Play template.</p>
</body>
</html>Запуск приложения Play
После настройки проекта и определения маршрутов и контроллеров можно запустить приложение с помощью SBT.
Перейдите в корневой каталог проекта в терминале и выполните:
sbt runОбычно приложение запускается по адресу http://localhost:9000.
Проверка компонентов Play
Проверим, насколько хорошо вы поняли основы фреймворка Play.
Повторение: основы Play
Вы сделали первые шаги с фреймворком Play! Мы рассмотрели:
- что такое Play и в чём заключается его реактивная природа;
- как настроить новый проект с помощью SBT;
- основные каталоги проекта;
- роль
conf/routesв сопоставлении URL; - создание контроллеров и функций действий;
- использование шаблонов Twirl для динамических представлений;
- запуск приложения Play.
Далее вы научитесь создавать RESTful API с помощью Play!
Изучай Scala с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 39
- Уроки
- 143
Часто задаваемые вопросы
Урок «Основы Play Framework» бесплатный?
Да — полный текст урока «Основы Play Framework» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Scala for Backend Engineering & Functional Programming, подпишись на CoddyKit PRO. Курс Scala for Backend Engineering & Functional Programming содержит 3 уроков всего.
Чему я научусь в уроке «Основы Play Framework»?
Начните работу с Play, изучите его архитектуру и настройте своё первое веб-приложение. Ты практикуешь Scala for Backend Engineering & Functional Programming с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Scala for Backend Engineering & Functional Programming?
Предыдущий опыт не требуется. Scala for Backend Engineering & Functional Programming на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.
Сколько времени занимает урок «Основы Play Framework»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Scala for Backend Engineering & Functional Programming?
Да. Каждый урок Scala for Backend Engineering & Functional Programming включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы Play Framework
- Создание RESTful API с Play
- Интеграция с базами данных через Slick/Doobie