【初心者向け】Goテンプレートの使い方|HTML表示を実装する方法

プログラム

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品質」

コメント

タイトルとURLをコピーしました