
#4 – Работа с HTML шаблонами в Go
Видеоурок
Шаблонизатор
С давних пор программисты стараются отделить функциональную часть сайта от визуальной. Для решения этой проблемы были созданы различные шаблонизаторы, что выполняют роль отделения логической части сайта от визуальной. В языке Golang есть встроенный шаблонизатор и есть дополнительные шаблонизаторы, что подключаются по отдельности.
Возможности даже встроенного шаблонизатора очень большие. Он способен выводить стандартную HTML разметку, а также выполнять: проверку условий, вывод массивов через цикл, вывод переменных и многое другое.
Ранее для вывода информации мы использовали fmt.Fprintf(). Подобный подход неверный, так как выводить «море» HTML тегов в формате одной строки – просто ужасно. Вместо такого подхода мы будем использовать метод template.ParseFiles()
, что позволяет выводить большие HTML-шаблоны, напичканые кодом из шаблонизатора.
В качестве параметров при вызове HTML шаблона необходимо передать месторасположение файла с шаблоном.
Создание шаблона
Все шаблоны лучше хранить в одной общей папке templates. При хранении в другой папке ошибки не будет, но это будет считаться плохим тоном.
В основном шаблоне можно прописать базовую структуру HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Главная страница</title>
</head>
<body>
</body>
</html>
Внутри шаблона можно выводить переменные, создавать циклы, условия и так далее. Все эти действия прописываются внутри двойных фигурных скобок:
{{ .Some }}
<!-- Условие -->
{{ if eq .Name "Bob" }}
{{ end }}
<!-- Цикл -->
{{ range .Array }}
{{ end }}
Внутри шаблона можно прописывать еще больше функций, но о них мы поговорим в следующих уроках.
Материалы для курса
Чтобы скачивать материалы к видеокурсам необходимо оформить подписку на сайт
Исходный код
Весь код будет доступен после подписки на проект!
Задание к уроку
Необходимо оформить подписку на проект, чтобы получить доступ ко всем домашним заданиям
Большое задание по курсу
Вам необходимо оформить подписку на сайте, чтобы иметь доступ ко всем большим заданиям. В задание входит методика решения, а также готовый проект с ответом к заданию.
PS: подобные задания доступны при подписке от 1 месяца
Также стоит посмотреть