go 语言模板基础知识

什么模板

Web 模板就是预先设计好的 HTML 页面,它可以被模板引擎反复的使用,来产生 HTML 页面

go 语言的标准库提供了 text/template,html/template两个模板库,大多数 Go 的 Web 框架都使用这些库作为 默认的模板引擎。

go 语言的模板引擎

go 主要使用的是 text/template,HTML 相关的部分使用了 html/template,是个混合体。

模板可以完全无逻辑,但又具有足够的嵌入特性,和大多数模板引擎一样,Go Web 的模板位于无逻辑和嵌入逻辑之间的某个地方。

关于模板

模板必须是可读的文本格式,扩展名任意。对于 Web 应用通常就是 HTML。里面会内嵌一些命令(叫做 action)

text/template 是通用模板引擎,html/template 是HTML 模板引擎 action 位于双层花括号之间:{{.}}这里的,就是一个action,它可以命令模板引擎将其替换成一个值。

示例代码

package main

import (
	"net/http"
	"text/template"
)

func main() {
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		template, _ := template.ParseFiles("./templates/index.html")
		template.Execute(w, "hi ...")

	})
	http.ListenAndServe(":80", nil)
}

# 模板代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <span style="color: red;">{{.}}</span>
</body>
</html>