Bu yazıda Go dilinin (golang) template kullanımı hakkında detaylı bilgiler vereceğiz.
İlk örneğimizi stdout ile yapıyoruz.
package main
import (
"os"
"text/template"
)
// Person isminde tür oluşturup içerisine Name ve BirthYear isimli değişkenler tanımlıyoruz.
type Person struct {
Name string
BirthYear int
}
func main() {
// Template'imize herhangi bir isim veriyoruz.
t := template.New("Örnek1")
// Parse edilecek değişkenleri bu şekilde yazıyoruz.
t, _ = t.Parse("{{.BirthYear}} yılında doğan şanslı insanlardan birisin {{.Name}}!")
// Değişkenlerimize değer atıyoruz.
p := Person{Name: "Noyan", BirthYear: 1990}
// Template'imizi çalıştırıyoruz. İlk parametre çıktının yapılacağı method, ikinci parametre tanımladığımız değişkenler.
t.Execute(os.Stdout, p)
// 1990 yılında doğan şanslı insanlardan birisin Noyan!
}
İkinci örneğimizi .html dosyasını render ederek yapıyoruz.
package main
import (
"path/filepath"
"os"
"text/template"
)
type Person struct {
Name string
BirthYear int
}
func RealPath(filename string) string {
cwd, _ := os.Getwd()
return filepath.Join(cwd, filename)
}
func main() {
t := template.New("dosya.html")
t, _ = t.ParseFiles(RealPath("dosya.html"))
p := Person{Name: "Noyan", BirthYear: 1990}
t.Execute(os.Stdout, p)
}
Üçüncü örneğimizi web server oluşturarak yapıyoruz.
package main
import (
"net/http"
"text/template"
)
type Person struct {
Name string
BirthYear int
}
func responder(w http.ResponseWriter, r *http.Request) {
t := template.New("Örnek1")
t, _ = t.Parse("{{.BirthYear}} yılında doğan şanslı insanlardan birisin {{.Name}}!")
p := Person{Name: "Noyan", BirthYear: 1990}
t.Execute(w, p)
}
func main() {
http.HandleFunc("/", responder)
http.ListenAndServe(":8080", nil)
}
Devam edecek..