Verwenden Sie die Funktion html/template.Execute in der Go-Sprachdokumentation, um die Vorlage zu rendern.
Bei der Entwicklung von Webanwendungen ist die Template-Engine ein sehr wichtiger Bestandteil. Die Template-Engine kann die endgültige HTML-Seite ausgeben, indem sie die Template-Datei mit den Daten zusammenführt. Gleichzeitig kann die Template-Engine dynamische Daten von HTML-Seiten trennen, wodurch die Anwendung einfacher zu pflegen und zu erweitern ist. Die Template-Engine der Go-Sprache ist sehr leistungsfähig und wird häufig in tatsächlichen Projekten verwendet.
Die Go-Sprache bietet viele leistungsstarke Vorlagen-Engines, von denen die am häufigsten verwendete die HTML/Template-Vorlagen-Engine ist. Sein Vorteil besteht darin, dass es Cross-Site-Scripting-Angriffe gut vermeiden kann und seine Verwendung relativ einfach und leicht zu beherrschen ist.
In diesem Artikel wird anhand eines konkreten Beispiels gezeigt, wie die Funktion html/template.Execute zum Rendern einer Vorlage verwendet wird.
Beispielbeschreibung:
Wir gehen von einer einfachen Anwendung aus. In dieser Anwendung müssen wir die Daten in der vom Benutzer übermittelten Form in der Datenbank speichern und eine Antwortseite ausgeben. Für diese Antwortseite gelten folgende Anforderungen:
Um den oben genannten Zweck zu erreichen, müssen wir zunächst eine HTML-Vorlage wie unten gezeigt erstellen:
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>提交成功</title> </head> <body> <h2>您提交的数据如下:</h2> <p>姓名: {{.Name}}</p> <p>性别: {{.Gender}}</p> <p>年龄: {{.Age}}</p> <h3>提交成功!</h3> </body> </html>
In der obigen HTML-Vorlage haben wir {{.Name}}, {{.Gender}} und {{ . Alter}} Diese drei Variablen werden beim Rendern der Vorlage durch vom Benutzer übermittelte Daten ersetzt.
Sehen wir uns an, wie Sie die Funktion html/template.Execute in der Go-Sprache zum Rendern von Vorlagen verwenden.
package main import ( "html/template" "net/http" ) type UserInfo struct { Name string Gender string Age int } func main() { http.HandleFunc("/", handleRequest) http.ListenAndServe(":8888", nil) } func handleRequest(w http.ResponseWriter, r *http.Request) { if r.Method == "POST" { // 解析表单数据 r.ParseForm() // 获取表单数据 name := r.FormValue("name") gender := r.FormValue("gender") age := r.FormValue("age") // 生成数据模型 userInfo := UserInfo{ Name: name, Gender: gender, Age: age, } // 解析模板文件 tmpl, err := template.ParseFiles("template.html") if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } // 将数据和模板渲染 err = tmpl.Execute(w, userInfo) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) } return } // 读取表单页面 http.ServeFile(w, r, "form.html") }
Im obigen Code definieren wir zunächst eine UserInfo-Struktur, die die vom Benutzer übermittelten Daten enthält. Bestimmen Sie in der Funktion handleRequest zunächst, ob es sich um eine POST-Anfrage handelt. Analysieren Sie zunächst die Formulardaten, generieren Sie dann ein UserInfo-Datenmodell und rendern Sie es zusammen mit der Vorlagendatei, um die endgültige HTML-Seite zu generieren.
Beim Rendern der Vorlage laden wir zunächst unsere Vorlagendatei über die Funktion template.ParseFiles und rufen dann die Funktion tmpl.Execute auf, um die Daten und die Vorlage für die Ausgabe zusammenzuführen. Wenn beim Rendern der Vorlage ein Fehler auftritt, verwenden wir die Funktion http.Error, um die Fehlermeldung an den Client zurückzugeben.
Wenn es sich schließlich nicht um eine POST-Anfrage handelt, lesen wir die Formularseite (form.html) und senden sie an den Kunden zurück.
Zusammenfassung:
Anhand des obigen Codebeispiels können wir sehen, dass es sehr einfach ist, eine Vorlage mit der Funktion html/template.Execute zu rendern. Führen Sie einfach das Datenmodell und die Vorlagendateien zusammen und geben Sie dann die endgültige HTML-Seite über die Funktion „Ausführen“ aus.
Die Verwendung der HTML/Template-Template-Engine kann als sehr einfach und flexibel bezeichnet werden. Als plattformübergreifende Anwendungsentwicklungssprache ist auch das Design der Go-Sprache in Bezug auf Template-Engines sehr gut. Unabhängig davon, ob Sie eine leistungsstarke Website oder einige kleine Anwendungen entwickeln, ist die Verwendung der HTML/Template-Template-Engine eine gute Wahl.
Das obige ist der detaillierte Inhalt vonRendern Sie Vorlagen mit der Funktion html/template.Execute in der Go-Sprachdokumentation. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!