Rumah  >  Artikel  >  pembangunan bahagian belakang  >  golang menjana kaedah templat

golang menjana kaedah templat

王林
王林asal
2023-05-13 10:44:07864semak imbas

Golang ialah bahasa pengaturcaraan yang sangat popular dengan sintaks yang mudah, kecekapan pelaksanaan yang tinggi dan kebolehbacaan yang kuat. Di Golang, menjana templat ialah keperluan pembangunan biasa dan boleh digunakan untuk menjana pelbagai templat kod atau dokumen untuk meningkatkan kecekapan pembangunan. Artikel ini akan memperkenalkan cara menggunakan Golang untuk menjana kaedah templat.

1. Bahasa templat

Bahasa templat Golang menggunakan kaedah seperti teg untuk mengenal pasti bahagian templat yang perlu diganti. Teg biasanya mengandungi dua jenis, iaitu "{{" dan "}}". Di antara kedua-dua tag ini, kita boleh memasukkan beberapa nilai atau ungkapan yang perlu diganti. Contohnya: {{.}} mewakili keseluruhan struktur data itu sendiri, {{.FieldName}} mewakili nilai medan dalam struktur, {{range .List}}{{.}}{{end}} mewakili merentasi data kumpulan.

Pada masa yang sama, dalam sintaks templat, operasi seperti pernyataan pertimbangan bersyarat, pernyataan gelung dan panggilan fungsi juga disokong. Sintaks khusus adalah seperti berikut:

1 Pernyataan penghakiman bersyarat

{{if .Condition}}

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

{{else}}

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

{{end }}

Contohnya:

{{if eq .Warna "Merah"}}

This is a red car

{{else}}

This is not a red car

{{end} }

2. Penyataan gelung

{{julat .List}}

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

{{end}}

Contohnya:

{{range .List}}

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

{{end}}

3. Panggilan fungsi

{{FuncName .Parameter}}

Contohnya:

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

2. kita boleh menentukan fail templat untuk mencapai tujuan penjanaan templat. Secara umumnya, kita boleh membahagikan fail templat mengikut fungsi yang berbeza atau menjana fail yang berbeza. Kami juga boleh meletakkan semua templat dalam fail yang sama. Dalam fail templat, kita boleh menggunakan bahasa templat di atas untuk menulis templat.

Sebagai contoh, jika kita perlu menjana fail HTML, kita boleh menulis fail templat seperti berikut:

8b05045a5be5764f313ed5b9168a17e6

100db36a723c770d327fc0aef2ce13b1

< ;kepala>

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

4f7e9ee3c387fa7cd73e9b3fa70c81fd

3c30aa6c4c72dd8ead30672a51b803a7

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

493a3ce9d2a3c91fa60924ecf20a1e6a

73a6ac4ed44ffec12cee46588e518a5e


3. Penjanaan templat

Di Golang, kita boleh menggunakan pakej "teks/template" atau pakej "html/template" untuk menjana templat. Perbezaan utama antara keduanya ialah "html/template" melepaskan rentetan yang dijana untuk mengelakkan serangan XSS.

Sebelum menggunakan pakej "text/template" atau pakej "html/template", kita perlu menyediakan model data terlebih dahulu Di sini kita boleh menggunakan struktur untuk mewakilinya. Sebagai contoh, berikut ialah struktur yang digunakan untuk mewakili artikel:

taip struct Artikel {

Title   string
Content string

}

Kita juga perlu mentakrifkan struktur untuk mewakili model data bagi halaman , seperti berikut:

taip PageData struct {

Title    string
Heading  string
Articles []Article

}

Kemudian, kita boleh menggunakan fungsi "ParseFiles" untuk menghuraikan fail templat dan mengembalikan templat yang diproses objek:

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

Seterusnya, kita boleh menghantar model data ke objek templat yang diproses untuk menjana rentetan akhir:

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

Antaranya, parameter pertama ialah kedudukan output, yang boleh menjadi os.Stdout, bytes.Buffer, dsb.; ialah model Data.

Jika kita ingin menjana fail, kita boleh menggunakan "os.Create" untuk mencipta fail dan kemudian hantar ke fungsi "t.Execute":

f, err := os.Create("output.html")

tunda f.Close()

err = t.Execute(f, data)

Dengan cara ini, kaedah penjanaan templat asas Golang selesai .

Kesimpulan

Fungsi penjanaan templat Golang sangat berkuasa dan boleh digunakan untuk menjana pelbagai templat kod atau dokumen. Dalam amalan, terdapat banyak ciri dan teknik lanjutan lain yang boleh digunakan pada proses penjanaan templat, seperti fungsi tersuai, pewarisan templat, penjanaan templat dinamik, dsb. Saya harap artikel ini dapat memberikan arah permulaan asas untuk pemula.

Atas ialah kandungan terperinci golang menjana kaedah templat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Reka bentuk kaedah umum golangArtikel seterusnya:Reka bentuk kaedah umum golang