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

 

發佈了67 篇原創文章 · 獲贊 27 · 訪問量 36萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章