/ golang

Golang'de template kullanımı

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..