加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang的模板处理Parse与ParseFiles写法区别

发布时间:2020-12-16 19:11:49 所属栏目:大数据 来源:网络整理
导读:golang可以选择从 字符串 或 文件 来获得模板。 字符串通过Parse函数 文件通过ParseFiles函数 两者写法有些区别,容易混淆,笔者趟了半天的坑,特此做个总结。 package mainimport ( "html/template" "os" "log" "fmt")var tplString=`!DOCTYPE htmlhtmlhead

golang可以选择从字符串文件来获得模板。
字符串通过Parse函数
文件通过ParseFiles函数
两者写法有些区别,容易混淆,笔者趟了半天的坑,特此做个总结。

package main

import (
    "html/template"
    "os"
    "log"
    "fmt"
)

var tplString=`
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>{{.Title}}</title>
</head>
<body>

</body>
</html>
`

type Data struct {
    Title    string
}

func checkErr(err error) {
    if err != nil {
        log.Println(err)
    }
}

func ParseString(data Data)  {
    var err error
    var t *template.Template
    t = template.New("Products") //创建一个模板
    t,err = t.Parse(tplString)
    checkErr(err)
    err = t.Execute(os.Stdout,data)
    checkErr(err)
}
func ParseFileWrong(data Data)  {
    var err error
    var t *template.Template
    t = template.New("Products") //创建一个模板
    t,err = t.ParseFiles("tpl.html")
    checkErr(err)
    err = t.Execute(os.Stdout,data)
    checkErr(err)
}
func ParseFile(data Data)  {
    var err error
    var t *template.Template
    t,err = template.ParseFiles("tpl.html")  //从文件创建一个模板
    checkErr(err)
    err = t.Execute(os.Stdout,data)
    checkErr(err)
}

func main() {
    data:=Data{Title:"夕阳西下"}
    fmt.Println("-----第一种----")
    ParseString(data)
    fmt.Println("-----第二种(错误)----")
    ParseFileWrong(data)
    fmt.Println("-----第三种----")
    ParseFile(data)
}

输出结果如下:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读