1. 简单的模板应用
beego 的视图(view)模板引擎是基于Go原生的模板库(html/template)进行开发的。
用户通过在 Controller 的对应方法中设置相应的模板名称,beego 会自动的在 viewpath 目录下查询该文件并渲染,例如下面的设置,beego 会在 view/admin
下面找 add.tpl
文件进行渲染:
func (this *RegController) Get(){
this.TplName = "admin/add.tpl"
}
下面举个例子:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用户个人信息:</h1>
<p>
{{ if .user}}
用户名: {{.user.Username}} <br/>
注册时间: {{.user.InitTime}}
{{else}}
用户不存在!
{{end}}
</p>
</body>
</html>
在控制器中写:
type User struct {
Id int
Username string
InitTime time.Time
}
func (this *RegController) Get(){
user:=&User{1,"ming",time.Now()}
this.Data["user"]=user
this.TplName="index.html"
}
网页输出如下:
模板的参数依靠Data
这个map传递,如果我们改为this.Data["users"]
那么就将输出:不存在。
2. 模板函数
户还可以自定义模板函数:
func newfunc(in string)(out string){
out=in+"- 我是新函数"
return
}
beego.AddFuncMap("newFunction",newfunc)
然后将模板改为:
{{.title | newFunction}}
3. 静态资源处理
除了html模板之外,往往还存在js/css/jpg之类的静态资源文件,beego默认静态资源都是保存在static目录,访问静态资源的url是 http://域名/static/资源路径名
。
比如如果我们在/static/img
下面放了一张cat.jpg
,那么我们访问localhost:8080/static/img/cat.jpg
就能出现这张图片。
然而URL这样会变得很冗长,也不清晰。我们我们需要通过beego.SetStaticPath
函数设置静态资源路由和目录。
// 例: /images/user/1.jpg 实际访问的是 static/images/user/1.jpg
beego.SetStaticPath("/images","static/images")
// 通过 /css/资源路径 可以访问static/css目录的内容
beego.SetStaticPath("/css","static/css")