Go 文本和HTML模板

文本模板:

 package main

import (
    "log"
    "os"
    "text/template"
)

type Student struct {
    Name    string
    Age int
    Sex string
    Habbits []string
    Normal  string
}

const templ = `students:
    {{range .}}-------------------------------------------------------------
    Name:   {{.Name}}
    Age:    {{.Age}}
    Sex:    {{.Sex}}
    Habbits:{{range $_,$habbit := .Habbits}}{{$habbit | printf "%s\t"}}{{end}}
    Normal: {{.Normal | addString}}{{printf "\n"}}
    {{end}}`
var students = []Student{
                {Name:"Marco", Age:19, Sex:"男", Habbits:[]string{"music", "sing", "write"}, Normal:"正常"},
                {Name:"Mike", Age:20, Sex:"男", Habbits:[]string{"basketball","art"}, Normal:"正常"},
                {Name:"Marry", Age:17, Sex:"女", Habbits:[]string{"art","sing","paino"}, Normal:"正常"},
}

func addString(normal string) string {
    return normal + "模式"
}
func main() {
        report, err := template.New("report").Funcs(template.FuncMap{"addString": addString}).Parse(templ) 
        if err != nil {
            log.Fatal(err)
        }

        if err := report.Execute(os.Stdout,students); err != nil {
            log.Fatal(err)
        }
}
效果:



HTML模板

package main


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

const templ = `<!DOCTYPE html>
        <html>
            <meta charset="utf-8"/>
            <head>
                <title>主页</title>
            </head>
            <body>
                <form>
                    <table align="center">
                        {{range .}}
                        <tr>
                            <td>Name:</td>
                            <td>{{.Name}}</td>
                        </tr>
                        <tr>
                            <td>Age:</td>
                            <td>{{.Age}}</td>
                        </tr>
                        <tr>
                            <td>Sex:</td>
                            <td>{{.Sex}}</td>
                        </tr>
                        <tr>
                            <td>Habbits:</td>
                            {{range $_, $habbit := .Habbits}}
                            <td>{{$habbit}}</td>
                            {{end}}
                        </tr>
                        <tr>
                            <td>{{.Normal | addString}}</td>
                        </tr>
                        {{end}}
                    </table>
                </form>
            <body>
        </html>`
type Student struct {
    Name    string
    Age int
    Sex string
    Habbits []string
    Normal  string 
}
func addString(normal string) string {
    return normal + "模式"
}
var students = []Student{
    {Name:"Marco", Age:19, Sex:"男", Habbits:[]string{"sing", "write","basketball"},Normal:"正常"},
    {Name:"Mike", Age:20, Sex:"男", Habbits:[]string{"basketball", "paino"},Normal:"正常"},
    {Name:"Marry", Age:17, Sex:"女", Habbits:[]string{"art", "eat"},Normal:"正常"},
}
func main() {
    report, err := template.New("report").Funcs(template.FuncMap{"addString": addString}).Parse(templ)
    if err != nil {
        log.Fatal(err)
    }
    if err := report.Execute(os.Stdout,students); err != nil {
        log.Fatal(err)
    }
}




————————————————
版权声明:本文为CSDN博主「RGBMarco」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/RGBMarco/article/details/78857211

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值