Go 언어 template 알아보기
오늘은 Go 언어 기본 패키지에 포함되있는 html/template을 이용하여 실습해보려 합니다.
1
2
3
4
5
6
package main
import (
"html/template"
"os"
)
오늘 포스트에 필요한 html/template 패키지와 출력에 필요한 os 패키지를 가져옵니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
func main() {
var source = `
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{{.Title}}</title>
</head>
<body>
{{range .Items}}<div>{{ . }}</div>{{end}}
</body>
</html>
`
html 코드를 문자열로 저장합니다.
향후 구조체를 넣으면 값을 출력해야 되기 때문에 {{.Title}} 과 같이 값을 넣을 공간을 템플릿으로 만들어줍니다.
만약 for range문 처럼 모든 내용을 출력하고 싶으면 range .Items으로 시작해서 반복할 태그를 작성하고, end로 닫아주면 됩니다.
1
webTemplate, _ := template.New("webpage").Parse(source)
작성한 html 코드들을 Parse 해줍니다.
1
2
3
4
5
6
7
8
9
10
11
12
structData := struct {
Title string
Body []string
}{
Title: "title",
Body: []string{
"list_1",
"list_2",
},
}
webTemplate.Execute(os.Stdout, structData)
}
익명 구조체를 이용하여 값들을 넣어주면서 출력해줍니다.
This post is licensed under CC BY 4.0 by the author.