Go 언어 template 알아보기

오늘은 Go 언어 기본 패키지에 포함되있는 html/template을 이용하여 실습해보려 합니다.

package main

import (
	"html/template"
	"os"
)

오늘 포스트에 필요한 html/template 패키지와 출력에 필요한 os 패키지를 가져옵니다.

func main() {
	var source = `
	<!DOCTYPE html>
	<html>
		<head>
			<meta charset="UTF-8">
			<title></title>
		</head>
		<body>
			<div></div>
		</body>
	</html>`

html 코드를 문자열로 저장합니다.

향후 구조체를 넣으면 값을 출력해야 되기 때문에 `````` 과 같이 값을 넣을 공간을 템플릿으로 만들어줍니다.

만약 for range문 처럼 모든 내용을 출력하고 싶으면 range .Items으로 시작해서 반복할 태그를 작성하고, end로 닫아주면 됩니다.

	webTemplate, _ := template.New("webpage").Parse(source)

작성한 html 코드들을 Parse 해줍니다.

	structData := struct {
		Title string
		Body  []string
	}{
		Title: "title",
		Body: []string{
			"list_1",
			"list_2",
		},
	}
	webTemplate.Execute(os.Stdout, structData)
}

익명 구조체를 이용하여 값들을 넣어주면서 출력해줍니다.

Written on October 23, 2018