ホームページ  >  記事  >  バックエンド開発  >  golang テンプレート生成メソッド

golang テンプレート生成メソッド

王林
王林オリジナル
2023-05-13 10:44:07807ブラウズ

Golang は、シンプルな構文、高い実行効率、優れた可読性を備えた非常に人気のあるプログラミング言語です。 Golang では、テンプレートの生成は一般的な開発要件であり、これを使用してさまざまなコードやドキュメント テンプレートを生成し、開発効率を向上させることができます。この記事では、Golang を使用してテンプレート メソッドを生成する方法を紹介します。

1. テンプレート言語

Golang のテンプレート言語は、タグに似たメソッドを使用して、置き換える必要があるテンプレートの部分を識別します。タグには通常、「{{」と「}}」の 2 種類が含まれます。これら 2 つのタグの間に、置換する必要がある値または式を挿入できます。例: {{.}} はデータ構造自体全体を表し、{{.FieldName}} は構造内のフィールドの値を表し、{{range .List}}{{.}}{{end}} はトラバースを表します。グループデータ。

同時に、テンプレート構文では、条件判定文、ループ文、関数呼び出しなどの操作もサポートしています。具体的な構文は以下のとおりです:

1. 条件判定文

{{if .Condition}}

<!-- Code block if the condition is true -->

{{else}}

<!-- Code block if the condition is false -->

{{end }}

例:

{{if eq .Color "Red"}}

This is a red car

{{else}}

This is not a red car

{{end} }

2. ループ ステートメント

{{range .List}}

<!-- Code block for each element in the list -->

{{end}}

例:

{{range .List}}

This is a {{.Color}} {{.Brand}} car

{{end}}

3. 関数呼び出し

{{FuncName .Parameter}}

例:

{{dateformat .CreateTime "yyyy-MM-dd HH:mm:ss"}}

2. テンプレート ファイル

Golang では、テンプレート生成の目的を達成するためにテンプレート ファイルを定義できます。一般的に、機能ごとにテンプレート ファイルを分割したり、異なるファイルを生成したりできます。すべてのテンプレートを同じファイルに入れることもできます。テンプレート ファイルでは、上記のテンプレート言語を使用してテンプレートを作成できます。

たとえば、HTML ファイルを生成する必要がある場合、次のようにテンプレート ファイルを作成できます:

8b05045a5be5764f313ed5b9168a17e6
100db36a723c770d327fc0aef2ce13b1
< ;head>

<meta charset="UTF-8">
<title>{{.Title}}</title>

9c3bca370b5104690d9ef395f2c5f8d1
6c04bd5ca3fcae76e30b72ad730ca86d

<h1>{{.Heading}}</h1>
{{range .Articles}}
    <h2>{{.Title}}</h2>
    <p>{{.Content}}</p>
{{end}}

36cc49f0c466276486e50c850b7e4956
73a6ac4ed44ffec12cee46588e518a5e

3.テンプレートの生成

Golang では、「text/template」パッケージまたは「html/template」パッケージを使用してテンプレートを生成できます。 2 つの主な違いは、XSS 攻撃を回避するために、「html/template」が生成された文字列をエスケープすることです。

「text/template」パッケージまたは「html/template」パッケージを使用する前に、データ モデルを準備する必要があります。ここでは、構造を使用してそれを表現できます。たとえば、次は記事を表すために使用される構造です:

type Article struct {

Title   string
Content string

}

また、記事のデータ モデルを表す構造を定義する必要があります。

type PageData struct {

Title    string
Heading  string
Articles []Article

}

次に、「ParseFiles」関数を使用してテンプレート ファイルを解析し、処理されたテンプレートを返すことができます。 object:

t, err := template.ParseFiles("template.html")

次に、データ モデルを処理されたテンプレート オブジェクトに渡して、最終的な文字列を生成します。

err = t.Execute(os.Stdout, data)

最初のパラメーターは出力場所で、os.Stdout、bytes.Buffer などを指定できます。2 番目のパラメーターはデータ モデルです。 。

ファイルを生成したい場合は、「os.Create」を使用してファイルを作成し、それを「t.Execute」関数に渡すことができます:

f, err := os.Create("output.html")
defer f.Close()
err = t.Execute(f, data)

このようにして、基本的な Golang テンプレート生成方法が完成します。

結論

Golang のテンプレート生成機能は非常に強力で、さまざまなコードやドキュメントのテンプレートを生成するために使用できます。実際には、カスタム関数、テンプレートの継承、動的テンプレート生成など、テンプレート生成プロセスに適用できる高度な機能やテクニックが他にも多数あります。この記事が初心者向けの基本的な開始方向を提供できれば幸いです。

以上がgolang テンプレート生成メソッドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。