Создание веб-приложения на D и фреймворке Vibe.d

Создание веб-приложения на D и фреймворке Vibe.d

Современные веб-приложения стали неотъемлемой частью нашей жизни, и разработчики постоянно ищут инструменты, которые позволят им создавать мощные и эффективные приложения с минимальными затратами времени и усилий. Один из таких инструментов — фреймворк Vibe.d, написанный на языке программирования D. Vibe.d предоставляет богатый набор возможностей для создания высокопроизводительных веб-приложений, что делает его отличным выбором для разработчиков.

В этой статье мы рассмотрим, как создать простое веб-приложение на языке D, используя фреймворк Vibe.d. Мы пройдем все этапы: от создания нового проекта до использования шаблонов для динамического HTML-оформления.

Создание нового проекта на D

Для начала, нам нужно создать новый проект на D. Предположим, что у вас уже установлен компилятор D и менеджер пакетов dub.

  1. Откройте терминал и выполните команду:
dub init my_vibe_project vibe.d

Эта команда создаст новый проект с именем my_vibe_project, который будет использовать фреймворк Vibe.d.

  1. Перейдите в каталог проекта:
cd my_vibe_project

Пример кода простого веб-сервера

Теперь создадим простой веб-сервер, который будет выводить «Привет, %username%!».

  1. Откройте файл source/app.d и замените его содержимое следующим кодом:
import vibe.vibe;

void handleRequest(HTTPServerRequest req, HTTPServerResponse res) {
    string username = req.queryParams.get("username", "гость");
    res.writeBody("Привет, " ~ username ~ "!");
}

void main() {
    auto settings = new HTTPServerSettings;
    settings.port = 8080;
    listenHTTP(settings, &handleRequest);
    runApplication();
}

Этот код создает HTTP-сервер, который слушает запросы на порту 8080 и отвечает строкой «Привет, %username%!».

Запуск и проверка работы сервера

Запустим наш сервер и проверим его работу.

  1. В терминале выполните команду:
dub

Если все прошло успешно, сервер будет запущен и будет ожидать запросы на порту 8080.

  1. Откройте веб-браузер и перейдите по адресу http://localhost:8080/?username=Иван. Вы должны увидеть сообщение «Привет, Иван!».

Добавление шаблонизатора для HTML-оформления

Чтобы сделать наше приложение более привлекательным, добавим поддержку HTML-шаблонов. Для этого будем использовать встроенный в Vibe.d шаблонизатор Diet.

  1. В файле dub.json добавьте зависимость от пакета vibe-d:template-diet:
"dependencies": {
    "vibe-d": "~>0.9.3",
    "vibe-d:template-diet": "~>0.9.3"
}
  1. Создадим новый файл шаблона views/welcome.dt с следующим содержимым:
doctype html
html
    head
        title Приветствие
    body
        h1 Привет, #{username}!

Изменение кода сервера для использования шаблона

Теперь изменим наш сервер, чтобы использовать созданный шаблон.

  1. Обновите файл source/app.d следующим образом:
import vibe.vibe;

void handleRequest(HTTPServerRequest req, HTTPServerResponse res) {
    string username = req.queryParams.get("username", "гость");
    res.render!("views/welcome.dt", username);
}

void main() {
    auto settings = new HTTPServerSettings;
    settings.port = 8080;
    listenHTTP(settings, &handleRequest);
    runApplication();
}

Этот код рендерит HTML-шаблон welcome.dt и передает в него значение переменной username.

Запуск, проверка работы и итог

Запустим наш обновленный сервер и проверим его работу.

  1. В терминале выполните команду:
dub

Сервер будет запущен и будет ожидать запросы на порту 8080.

  1. Откройте веб-браузер и перейдите по адресу http://localhost:8080/?username=Иван. Вы должны увидеть отформатированное HTML-сообщение «Привет, Иван!».

Таким образом, мы создали простое веб-приложение на языке D с использованием фреймворка Vibe.d, добавили поддержку HTML-шаблонов и сделали его более привлекательным. Vibe.d предоставляет множество возможностей для разработки современных веб-приложений, и мы только начали их исследовать. Удачи в ваших дальнейших разработках на D!


Карпов Ярослав

Автор статьи:

Обновлено:

23.05.2024


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *