Go言語でWebアプリを開発する際、HTMLを表示するために使われるのが「テンプレート機能」です。
Goには標準で html/template が用意されており、安全かつ高速にHTML描画を実装できます。
本記事では、Goテンプレートを使ったHTML表示について「基本・データ埋め込み・実務での使い方」まで初心者向けに解説します。
Goテンプレートとは?
Goテンプレートとは👇
👉 HTMLにデータを埋め込む仕組み
なぜ使うのか?
例えば👇
- ブログ画面
- 一覧ページ
- 管理画面
- 詳細画面
👉 Web開発では必須
html/templateを使う
import "html/template"
HTMLテンプレート作成
index.html
<!DOCTYPE html>
<html>
<head>
<title>{{ .Title }}</title>
</head>
<body>
<h1>{{ .Title }}</h1>
<p>{{ .Message }}</p>
</body>
</html>
Go側コード
tmpl := template.Must(
template.ParseFiles("index.html"),
)
data := struct {
Title string
Message string
}{
Title: "Go Template",
Message: "Hello World",
}
tmpl.Execute(w, data)
実行結果
<h1>Go Template</h1>
<p>Hello World</p>
ループ表示
{{ range .Users }}
<p>{{ .Name }}</p>
{{ end }}
条件分岐
{{ if .IsLogin }}
<p>ログイン中</p>
{{ end }}
レイアウト分割
template.ParseGlob("templates/*.html")
👉 共通ヘッダー管理
GinでのHTML表示
Gin
r.LoadHTMLGlob("templates/*")
HTML表示
c.HTML(
200,
"index.html",
gin.H{
"title": "TOP",
},
)
実務で重要なポイント
✔ XSS対策
👉 html/templateは自動エスケープ
✔ レイアウト共通化
header
footer
sidebar
✔ MVC構成意識
- Model
- View
- Controller
実務での応用
- 管理画面
- CMS
- ECサイト
- 会員サイト
👉 あなたなら👇
👉「口コミブースターPRO」の管理画面表示に重要
よくある失敗
❌ template.Parse忘れ
❌ HTML直書き乱立
❌ XSS未対策
ベストプラクティス
- Layout共通化
- MVC分離
- Template整理
- XSS対策
💡 結論
👉
「Template設計=Web UI品質」


コメント