golang htmltemplate

golang htmltemplate,第1张

概述template包(html/template)实现了数据驱动的模板,用于生成可对抗代码注入的安全HTML输出。本包提供了和text/template包相同的接口,无论何时当输出是HTML的时候都应使用本包。 main.go   package mainimport ( "html/template" "io/ioutil" "os" "time" "fmt")func ma

template包(HTML/template)实现了数据驱动的模板,用于生成可对抗代码注入的安全HTML输出。本包提供了和text/template包相同的接口,无论何时当输出是HTML的时候都应使用本包。

main.go

package mainimport (	"HTML/template"	"io/IoUtil"	"os"	"time"	"fmt")func main() {	t := template.New("第一个模板").Delims("[[","]]") //创建一个模板,设置模板边界	t,_ = t.Parse("hello,[[.Username]]\n")       //解析模板文件	data := map[string]interface{}{"Username": template.HTML("<script>alert('you have been pwned')</script>")}	t.Execute(os.Stdout,data) //执行模板的merger *** 作,并输出到控制台	t2 := template.New("新的模板")                         //创建模板	t2.Funcs(map[string]interface{}{"tihuan": tihuan}) //向模板中注入函数	bytes,_ := IoUtil.Readfile("test2.HTML")          //读文件	template.Must(t2.Parse(string(bytes)))             //将字符串读作模板	t2.Execute(os.Stdout,map[string]interface{}{"Username": "你好世界"})	fmt.Println("\n",t2.name(),"\n")	t3,_ := template.Parsefiles("test1.HTML") //将一个文件读作模板	t3.Execute(os.Stdout,data)	fmt.Println(t3.name(),"\n") //模板名称	t4,_ := template.ParseGlob("test1.HTML") //将一个文件读作模板	t4.Execute(os.Stdout,data)	fmt.Println(t4.name())}//注入模板的函数func tihuan(str string) string {	return str + "-------" + time.Now().Format("2006-01-02")}

test1.HTML

<!DOCTYPE HTML><HTML><head>	<Title>template</Title></head><body>hello {{.Username}}<br></body></HTML>

test2.HTML

<!DOCTYPE HTML><HTML><head>	<Title>template</Title></head><body>hello {{.Username}}<br>{{tihuan .Username}}</body></HTML>

模版解析

// 模版解析func (this *YulanController) parseTemplate(tplname string,data interface{}) (string,error) {	var HTML string	b,err := IoUtil.Readfile(tplname)	if err != nil {		fmt.Println(tplname,err)		return "",err	}	t := template.New(tplname)	template.Must(t.Parse(string(b)))	wr := bytes.NewBufferString("")	err = t.Execute(wr,data)	if err != nil {		fmt.Println(err)		return "",err	}	return wr.String(),err}
总结

以上是内存溢出为你收集整理的golang html/template全部内容,希望文章能够帮你解决golang html/template所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1286548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存