Какой golang шаблонизатор выбрать и как подключить файлы динамически?

Пользователь

от jaren , в категории: Golang , 7 месяцев назад

Какой golang шаблонизатор выбрать и как подключить файлы динамически?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от brooklyn , 7 месяцев назад

@jaren 

В Golang есть несколько популярных шаблонизаторов, таких как:

  1. html/template: Это стандартный пакет в Go, который обладает мощным функционалом и хорошо подходит для шаблонизации HTML. Чтобы использовать его, вам необходимо импортировать пакет "html/template". Пример использования показан ниже:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import (
	"html/template"
	"log"
	"net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
	tmpl, err := template.ParseFiles("template.html")
	if err != nil {
		log.Fatal(err)
	}

	err = tmpl.Execute(w, nil)
	if err != nil {
		log.Fatal(err)
	}
}

func main() {
	http.HandleFunc("/", handler)
	http.ListenAndServe(":8080", nil)
}


  1. gin: Это популярный микрофреймворк для Go, который также обеспечивает функционал шаблонизации. Он предоставляет упрощенный способ создания маршрутов и обработчиков, а также удобную интеграцию с шаблонами. Чтобы использовать gin и шаблонизатор, вам необходимо импортировать пакет "github.com/gin-gonic/gin". Пример использования показан ниже:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {
	r := gin.Default()
	r.LoadHTMLGlob("templates/*")

	r.GET("/", func(c *gin.Context) {
		c.HTML(http.StatusOK, "index.tmpl", nil)
	})

	r.Run(":8080")
}


В обоих примерах шаблонные файлы должны находиться в указанной директории ("template.html" для первого метода и "templates/index.tmpl" для второго метода). Передавайте нужные данные в функцию Execute или через контекст gin для передачи динамических данных в шаблон.