
下面由golang教程欄目給大家介紹Go語(yǔ)言中使用模板引擎,希望對(duì)需要的朋友有所幫助!
1 概述處理響應(yīng)主體時(shí),最常見(jiàn)的方式就是發(fā)送處理好的 HTML 代碼,由于需要將數(shù)據(jù)嵌入到 HTML 中,那么模板引擎(template engine)就是最好的選擇。
Go語(yǔ)言中,提供了 html/template包,實(shí)現(xiàn)模板引擎的相關(guān)功能。快速使用示例:
main.go
package mainimport (
"html/template"
"log"
"net/http")func main() {
// 設(shè)置 處理函數(shù)
http.HandleFunc("/", TestAction)
開(kāi)啟監(jiān)聽(tīng)(監(jiān)聽(tīng)瀏覽器請(qǐng)求)
log.Fatal(http.ListenAndServe(":8084", nil))}func TestAction(w http.ResponseWriter, r *http.Request) {
// 解析模板
t, _ := template.ParseFiles("template/index.html")
// 設(shè)置模板數(shù)據(jù)
data := map[string]interface{}{
"User": "小韓說(shuō)課",
"List": []string{"Go", "Python", "PHP", "JavaScript"},
}
// 渲染模板,發(fā)送響應(yīng)
t.Execute(w, data)}template/index.html
<!DOCTYPE html><html lang="en"><head>
<meta charset="UTF-8">
<title>小韓說(shuō)課</title></head><body>Hello, {{ .User }}<br>你熟悉的技術(shù):<ul>{{ range .List }} <li>{{.}}</li>{{end}}</ul></body></html>執(zhí)行結(jié)果:
以上代碼就完了模板引擎的基本使用,包括解析模板,渲染數(shù)據(jù),響應(yīng)結(jié)果操作。接下來(lái)詳細(xì)說(shuō)明。
2 解析模板函數(shù) template.ParseFiles(filenames ...string) (*Template, error)可以解析模板文件,并得到模板對(duì)象。參數(shù)為模板文件。同時(shí)會(huì)以模板文件的文件名(不包含后綴名)作為模板的名字。
還可以使用 template.New("name").Parse(src string)來(lái)創(chuàng)建模板對(duì)象,并完成解析模板內(nèi)容。
函數(shù) func (t *Template) Execute(wr io.Writer, data interface{}) error將 data 應(yīng)用到解析好的模板上,并將輸出寫(xiě)入 wr。如果執(zhí)行時(shí)出現(xiàn)錯(cuò)誤,會(huì)停止執(zhí)行,但有可能已經(jīng)寫(xiě)入wr部分?jǐn)?shù)據(jù)。
data 數(shù)據(jù)可以接受任意類型,最常見(jiàn)的類型為:map[string]interface{},通過(guò)不同的下標(biāo)來(lái)區(qū)分部分的分配數(shù)據(jù)。在模板中使用 .User,.List來(lái)訪問(wèn)分配數(shù)據(jù)中的 User 和 List。
完!
新聞標(biāo)題:Go語(yǔ)言中如何使用模板引擎
本文URL:http://www.chinadenli.net/article6/cggsog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供自適應(yīng)網(wǎng)站、電子商務(wù)、網(wǎng)站導(dǎo)航、Google、定制開(kāi)發(fā)、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)