golang基础-模板if判断、传(map_arr切片)数据渲染浏览器
来源:互联网 发布:互联网之子 知乎 编辑:程序博客网 时间:2024/06/16 11:28
- 模板if判断
- 模板if常见操作符
- 传map数据渲染浏览器
- 传map数据渲染浏览器
模板if判断
index.html
<html> <head> </head> <body> {{if gt .Age 18}} <p>hello, old man, {{.Name}}</p> {{else}} <p>hello,young man, {{.Name}}</p> {{end}} </body></html>
demo.go
package mainimport ( // "os" "fmt" "html/template" "io" "net/http")var myTemplate *template.Templatetype Person struct { Name string Age int}type Result struct { output string}/*自定义实现接口type Writer interface { Write(p []byte) (n int, err error)}*/func (p *Result) Write(b []byte) (n int, err error) { fmt.Println("called by template") p.output += string(b) return len(b), nil}/*func WriteString(w Writer, s string) (n int, err error) { if sw, ok := w.(stringWriter); ok { return sw.WriteString(s) } return w.Write([]byte(s))}*/func userInfo(w http.ResponseWriter,r *http.Request) { p := Person{Name:"safly",Age:30} resultWriter := &Result{} io.WriteString(resultWriter, "hello world") myTemplate.Execute(w,p) fmt.Println("render data:",resultWriter.output)}func initTemplate(fileName string) (err error){ myTemplate,err = template.ParseFiles(fileName) if err != nil{ fmt.Println("parse file err:",err) return } return}/*func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler)}*/func main() { initTemplate("e:/golang/go_pro/src/safly/index.html") http.HandleFunc("/user/info", userInfo) err := http.ListenAndServe("0.0.0.0:8880", nil) if err != nil { fmt.Println("http listen failed") }}
浏览器输入
终端输出如下:
PS E:\golang\go_pro\src\safly> go run demo.gocalled by templaterender data: hello world
模板if常见操作符
• not 非{{if not .condition}} {{end}}• and 与{{if and .condition1 .condition2}} {{end}}• or 或{{if or .condition1 .condition2}} {{end}}• eq 等于{{if eq .var1 .var2}} {{end}}• ne 不等于{{if ne .var1 .var2}} {{end}}• lt 小于 (less than){{if lt .var1 .var2}} {{end}}• le 小于等于{{if le .var1 .var2}} {{end}}• gt 大于{{if gt .var1 .var2}} {{end}}• ge 大于等于{{if ge .var1 .var2}} {{end}}
传map数据渲染浏览器
package mainimport ( // "os" "fmt" "html/template" "io" "net/http")var myTemplate *template.Templatetype Person struct { Name string Age int}type Result struct { output string}/*自定义实现接口type Writer interface { Write(p []byte) (n int, err error)}*/func (p *Result) Write(b []byte) (n int, err error) { fmt.Println("called by template") p.output += string(b) return len(b), nil}/*func WriteString(w Writer, s string) (n int, err error) { if sw, ok := w.(stringWriter); ok { return sw.WriteString(s) } return w.Write([]byte(s))}*/func userInfo(w http.ResponseWriter,r *http.Request) { // p := Person{Name:"safly",Age:30} p:= make(map[string]interface{}) p["Name"] = "safly" p["Age"] = 18 resultWriter := &Result{} io.WriteString(resultWriter, "hello world") myTemplate.Execute(w,p) fmt.Println("render data:",resultWriter.output)}func initTemplate(fileName string) (err error){ myTemplate,err = template.ParseFiles(fileName) if err != nil{ fmt.Println("parse file err:",err) return } return}/*func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler)}*/func main() { initTemplate("e:/golang/go_pro/src/safly/index.html") http.HandleFunc("/user/info", userInfo) err := http.ListenAndServe("0.0.0.0:8880", nil) if err != nil { fmt.Println("http listen failed") }}
index.html:
<html> <head> </head> <body> {{if gt .Age 18}} <p>hello, old man, {{.Name}}</p> {{else}} <p>hello,young man, {{.Name}}</p> {{end}} {{.}} </body></html>
浏览器输入
终端输出如下:
PS E:\golang\go_pro\src\safly> go run demo.gocalled by templaterender data: hello worldcalled by templaterender data: hello world
传map数据渲染浏览器
index.html
<html> <head> </head> <body> <p>hello world</p> <table border="1"> {{range .}} <tr> <td>{{.Name}}</td> <td>{{.Age}}</td><td>{{.Title}}</td> </tr> {{end}} </table> </body> </html>
demo.go
package mainimport ( // "os" "fmt" "html/template" "io" "net/http")var myTemplate *template.Templatetype Person struct { Name string Age int Title string}type Result struct { output string}/*自定义实现接口type Writer interface { Write(p []byte) (n int, err error)}*/func (p *Result) Write(b []byte) (n int, err error) { fmt.Println("called by template") p.output += string(b) return len(b), nil}/*func WriteString(w Writer, s string) (n int, err error) { if sw, ok := w.(stringWriter); ok { return sw.WriteString(s) } return w.Write([]byte(s))}*/func userInfo(w http.ResponseWriter,r *http.Request) { var arr []Person p := Person{Name: "Mary001", Age: 10, Title: "我的个人网站"} p1 := Person{Name: "Mary002", Age: 10, Title: "我的个人网站"} p2 := Person{Name: "Mary003", Age: 10, Title: "我的个人网站"} arr = append(arr, p) arr = append(arr, p1) arr = append(arr, p2) resultWriter := &Result{} io.WriteString(resultWriter, "hello world") myTemplate.Execute(w,arr) fmt.Println("render data:",resultWriter.output)}func initTemplate(fileName string) (err error){ myTemplate,err = template.ParseFiles(fileName) if err != nil{ fmt.Println("parse file err:",err) return } return}/*func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler)}*/func main() { initTemplate("e:/golang/go_pro/src/safly/index.html") http.HandleFunc("/user/info", userInfo) err := http.ListenAndServe("0.0.0.0:8880", nil) if err != nil { fmt.Println("http listen failed") }}
阅读全文
0 0
- golang基础-模板if判断、传(map_arr切片)数据渲染浏览器
- golang基础-模板渲染(终端、浏览器)、渲染输出文件、自定义io.Writer渲染
- Golang -- 切片
- golang 切片
- 判断IE浏览器<!--[if !IE]><!--[if IE]>
- Golang 模板基础语法范例
- 从基础做起--浏览器渲染
- 大数据可视化之矢量切片的生成及渲染
- 任意数据类型切片 golang
- golang ---- slice 切片
- Golang -- 字节切片
- golang 数组和切片
- Golang slice 切片
- GoLang数组与切片
- golang slice 切片原理
- golang二维切片赋值
- Golang 切片拼接
- golang数组切片详解
- Sass
- 输出一个花样桃心
- spring-cloud中eureka进行服务治理
- 关于ansible远程执行的环境变量问题(login shell & nonlogin shelll)
- git
- golang基础-模板if判断、传(map_arr切片)数据渲染浏览器
- 素数对
- 最长公共子串
- flex自适应邮箱布局
- 安装完PyUserInput后,相关模块导入异常处理
- yum工具用法
- jy-大佬作业笔记
- HDU 1789 Doing Homework Again(贪心)
- D