Heim > Backend-Entwicklung > Golang > So verwenden Sie die Template-Engine in der Go-Sprache

So verwenden Sie die Template-Engine in der Go-Sprache

藏色散人
Freigeben: 2020-09-12 13:30:06
nach vorne
4485 Leute haben es durchsucht

Die folgende Kolumne stellt Ihnen die Verwendung von Template-Engines in der Go-Sprache aus der Kolumne golang-Tutorial vor. Ich hoffe, dass sie Freunden, die es brauchen, hilfreich sein wird!

So verwenden Sie die Template-Engine in der Go-Sprache

1 Übersicht

Bei der Verarbeitung des Antworttextes ist die häufigste Methode das Senden von verarbeitetem HTML-Code. Da Daten in HTML eingebettet werden müssen, ist eine Template-Engine die beste Wahl.

Go-Sprache stellt das Paket html/template zur Implementierung der zugehörigen Funktionen der Template-Engine bereit. Schnelles Anwendungsbeispiel: html/template 包,实现模板引擎的相关功能。快速使用示例:

main.go

package mainimport (
  "html/template"
  "log"
  "net/http")func main() {
  // 设置 处理函数
  http.HandleFunc("/", TestAction)
   开启监听(监听浏览器请求)
  log.Fatal(http.ListenAndServe(":8084", nil))}func TestAction(w http.ResponseWriter, r *http.Request) {
  // 解析模板
  t, _ := template.ParseFiles("template/index.html")
  // 设置模板数据
  data := map[string]interface{}{
    "User": "小韩说课",
    "List": []string{"Go", "Python", "PHP", "JavaScript"},
  }
  // 渲染模板,发送响应
  t.Execute(w, data)}
Nach dem Login kopieren

template/index.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>小韩说课</title></head><body>Hello, {{ .User }}<br>你熟悉的技术:<ul>{{ range .List }}    <li>{{.}}</li>{{end}}</ul></body></html>
Nach dem Login kopieren

So verwenden Sie die Template-Engine in der Go-Sprache:

So verwenden Sie die Template-Engine in der Go-Sprache

以上代码就完了模板引擎的基本使用,包括解析模板,渲染数据,响应结果操作。接下来详细说明。

2 解析模板

函数 template.ParseFiles(filenames ...string) (*Template, error) 可以解析模板文件,并得到模板对象。参数为模板文件。同时会以模板文件的文件名(不包含后缀名)作为模板的名字。

还可以使用 template.New("name").Parse(src string) 来创建模板对象,并完成解析模板内容。

3 应用数据并发送响应

函数 func (t *Template) Execute(wr io.Writer, data interface{}) error 将 data 应用到解析好的模板上,并将输出写入 wr。如果执行时出现错误,会停止执行,但有可能已经写入wr部分数据。

data 数据可以接受任意类型,最常见的类型为:map[string]interface{},通过不同的下标来区分部分的分配数据。在模板中使用 .User.List

main.go

rrreee
template/index.html
rrreee🎜So verwenden Sie die Template-Engine in der Go-Sprache: 🎜🎜So verwenden Sie die Template-Engine in der Go-Sprache🎜🎜Der obige Code vervollständigt die grundlegende Verwendung der Vorlagen-Engine, einschließlich Parsen von Vorlagen, Rendern von Daten usw Antwortergebnisoperationen. Details folgen. 🎜🎜2 Vorlagen analysieren🎜🎜 Funktion template.ParseFiles(filenames ...string) (*Template, error) kann Vorlagendateien analysieren und Vorlagenobjekte abrufen. Der Parameter ist die Vorlagendatei. Gleichzeitig wird der Dateiname der Vorlagendatei (ohne Suffix) als Name der Vorlage verwendet. 🎜🎜Sie können auch template.New("name").Parse(src string) verwenden, um ein Vorlagenobjekt zu erstellen und die Analyse des Vorlageninhalts abzuschließen. 🎜🎜3 Daten anwenden und Antwort senden🎜🎜Function func (t *Template) Execute(wr io.Writer, data interface{}) error Daten auf die analysierte Vorlage anwenden und Write wr ausgeben. Wenn während der Ausführung ein Fehler auftritt, wird die Ausführung angehalten, es wurden jedoch möglicherweise einige Daten von wr geschrieben. 🎜🎜Datendaten können jeden Typ annehmen, der häufigste Typ ist: map[string]interface{}, ein Teil der zugewiesenen Daten wird durch unterschiedliche Indizes unterschieden. Verwenden Sie .User, .List in der Vorlage, um auf Benutzer und Liste in den zugewiesenen Daten zuzugreifen. 🎜🎜Ende! 🎜🎜

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Template-Engine in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage