【Go实战基础】程序里面数据是如何显示到浏览器当中的
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【Go实战基础】程序里面数据是如何显示到浏览器当中的
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                目錄
一、簡介
二、模版庫
三、菜鳥實戰
1、新建文件
2、編譯和運行
3、運行結果
3.1、運行后服務啟動,控制臺輸出
3.2、瀏覽器輸入后結果?
一、簡介
在 Web 中, 我們通常需要在后端將一些數據渲染到 HTML 文檔中,? HTML 就可以在瀏覽器中顯示,從而實現動態的網頁效果。
模板可以被理解為事先定義好的 HTML 文檔。模板渲染可以被簡單理解為文本替換操作: 是后端用相應的數據去替換 HTML 文檔中實現準備好的標記。模板技術多種多樣,但本質是將模板文件和數據通過模板引擎生成最終的HTML文檔。
二、模版庫
Go 提供了兩個基礎模板庫 :
- text/template
- html/template
html/template 在渲染頁面模板時會在后臺進行一些編碼,以幫助防止造成代碼注入(XSS 攻擊),用的比較多,所以我們主要使用這個模版庫來做實戰。
三、菜鳥實戰
實戰場景:使用?html/template 模版渲染數據到瀏覽器中
馬上安排!
1、新建文件
/** @Author: 菜鳥實戰* @FilePath: /go110/go-014/g014.go* @Description: html/template 模版渲染數據到瀏覽器*/package mainimport ("fmt""html/template""log""net/http""runtime" )// 用戶信息 type User struct {Name stringGender stringAge int }// 顯示數據 func render(w http.ResponseWriter, r *http.Request) {//加載模板 解析模板, 此處輸入文件絕對路徑t, err := template.ParseFiles("yourpath/index.html")if err != nil {log.Println("模版解析錯誤, err %v ", err)return}// 渲染字符串name := "user1"//err = t.Execute(w, name)// 渲染結構體user := User{Name: name,Gender: "女",Age: 23,}// 渲染 mapm := map[string]interface{}{"name": name,"gender": "男","age": 25,}//err = t.Execute(w, m)// 渲染數組carList := []string{"汽車","火車","貨車",}// 把對象傳輸到模板展示err = t.Execute(w, map[string]interface{}{"name": name,"m": m,"user": user,"carList": carList,})if err != nil {log.Println("渲染模版失敗, err %v", err)return} }func main() {// 使用內置函數打印println("Hello", "菜鳥實戰")http.HandleFunc("/", render)err := http.ListenAndServe(":8009", nil)if err != nil {log.Println("http服務啟動異常, err: %v", err)}// 當前版本fmt.Printf("版本: %s \n", runtime.Version())fmt.Printf("菜鳥實戰,持續學習! \n") }對應的模版文件 index.html 為
<!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Hello</title> </head> <body> <p>名稱 {{ .user.Name }}</p> <p>年齡 {{ .user.Age }}</p> <p>性別 {{ .user.Gender }}</p> ? <p>名稱 {{ .m.name }}</p> <p>年齡 {{ .m.age }}</p> <p>性別 {{ .m.gender }}</p><hr>{{if .carList}}{{range .carList}}<div>{{ . }}</div>{{else}}<div><strong>no rows</strong></div>{{end}}{{else}}<p>carList為空</p>{{end}} </body> </html>2、編譯和運行
# 1、生成模塊依賴
 go mod init g014
 ?
 # 2、編譯
 go build g014.go?
 ?
 # 3、編譯后的目錄結構
└── go-014
 ? ? ├── g014
 ? ? ├── g014.go
 ? ? └── go.mod
 ? ? └── index.html
 # 4、運行
 go run g014
3、運行結果
3.1、運行后服務啟動,控制臺輸出
Hello 菜鳥實戰
3.2、瀏覽器輸入后結果?
??
?菜鳥實戰,持續學習!
總結
以上是生活随笔為你收集整理的【Go实战基础】程序里面数据是如何显示到浏览器当中的的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 字母异位词(anagram)的不同复杂度
- 下一篇: 51单片机开发入门(5)-定时器/计数器
