【GO】ginのHTMLテンプレート機能


gin-gonic/ginのHTMLテンプレートの使い方が理解しにくい。

テンプレート本体はtext/templatehtml/templateを見ればいい気がしますが、一見してよくわからなかったので自分用メモ。

 

GOの方はこんな感じで簡潔に書けます。

SetFuncMap()でテンプレートから呼び出す関数の設定をしてからLoadHTMLGlob()することでHTMLテンプレートを使えるようになります(順番に注意)。

次にHTTPメソッド(GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS)に対応して処理を書きます。

その中のContext.HTML()でHTMLレンダリングしています。

また、テンプレートで静的ファイルの読み込みが必要な場合はr.Static("/css", "./css")のように場所を指定しておく必要があります。

 

HTML側は.tmplファイルが使われていますが.htmlファイルでも動きます。

タグ解析もHTMLと変わらずできるしtmplファイルにするメリットがいまいちよくわからない。

 

テンプレートへの値渡しはデフォルトで{{.Name}}です。

この区切り文字はgo側のr.Delims("区切り始め", "区切り終わり")で変更可。

range(ループ), if(条件), with(存在確認), template(他テンプレート呼び出し)などのキーワードや|での後処理、{{$var := 1}}のような変数定義ができます。

 

ローカルホストにアクセスするとこうなります。⇒http://localhost:8080/

 

rangeと変数を合わせてこんな風に書くこともできます。

 

大体のことは簡単にできそうですが、凝ったことをしようとするとつまずきそう。

参考になりそうなginプロジェクトがないか探してみます。


コメントを残す

メールアドレスが公開されることはありません。