模板:提前定义好的html文件
渲染:就是填充数据或者说替换字符串
Go语言内置了用于HTML文档的html/template和文本模板引擎text/template。
模板文件通常定义为.tmpl和.tpl为后缀;
必须使用UTF8编码;
模板文件中使用{{和}}包裹和标识需要传入的数据,除{{和}}包裹的内容外,其他内容均不做修改原样输出。
hello.tmpl
<!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>Hello {{.}}</p>
</body>
</html>
其中,其中{{.}}
中的点表示当前对象
main.go
package main
import (
"fmt"
"html/template"
"net/http"
)
func sayHello(w http.ResponseWriter, r *http.Request) {
// 解析指定文件生成模板对象
tmpl, err := template.ParseFiles("./hello.tmpl")
if err != nil {
fmt.Println("create template failed, err:", err)
return
}
// 利用给定数据渲染模板,并将结果写入w
tmpl.Execute(w, "hello你好")
}
func main() {
http.HandleFunc("/", sayHello)
err := http.ListenAndServe(":9090", nil)
if err != nil {
fmt.Println("HTTP server failed,err:", err)
return
}
}