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!
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)}
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>
So verwenden Sie die Template-Engine in der Go-Sprache:
以上代码就完了模板引擎的基本使用,包括解析模板,渲染数据,响应结果操作。接下来详细说明。
函数 template.ParseFiles(filenames ...string) (*Template, error)
可以解析模板文件,并得到模板对象。参数为模板文件。同时会以模板文件的文件名(不包含后缀名)作为模板的名字。
还可以使用 template.New("name").Parse(src string)
来创建模板对象,并完成解析模板内容。
函数 func (t *Template) Execute(wr io.Writer, data interface{}) error
将 data 应用到解析好的模板上,并将输出写入 wr。如果执行时出现错误,会停止执行,但有可能已经写入wr部分数据。
data 数据可以接受任意类型,最常见的类型为:map[string]interface{}
,通过不同的下标来区分部分的分配数据。在模板中使用 .User
,.List
main.gorrreee
template/index.htmlrrreee🎜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!