背景:
本篇使用beego框架实验了一下 golangMVC之view
view 就是展示层,beego中采用了 go temple 解析具体的字段 ,这样可以将数据写入到 control层| models层 控制,view层只做为展示层即可。实现了数据 暂时分离。
实验
1.先创建一个 control 的go文件
package controllers
import (
"WEB/models"
"github.com/astaxie/beego"
)
//ViewController is a Controller to handel struct of models
type ViewController struct {
beego.Controller
}
//Get is a function
func (c *ViewController) Get() {
var (
users []models.UserInfo
)
models.ReadUserInfo(&users)
c.Data["Users"] = users
c.TplName = "users.tpl"
}
我们创建一个新的control 文件 ,用于获取所有的用户信息,通过调用models层中的ReadUserInfo方法获取所有用户
同时将获取的用户 放入到 模版字段 Users中 ,然后解析模版使用的是 users.tpl
定义模版解析字段的时候 这个格式是固定的
c.Data["Users"] = users
c.TplName = "users.tpl"
为什么是这个样子呢?
我们看control的定义
Data就是可以存储任何数据的map ,TplName 就是 简单的string类型
2.定义 view层
<html>
<title> view test</title>
<body>
{{ range .Users }}
{{ .Username }} {{.Password}}<br>
{{ end }}
</body>
</html>
我们通过一个range 循环去读取了 users []models.UserInfo users数组中所有的数据
3.增加 route
在route.go中增加对应 control的路由即可
4.重新启动程序
bee run
5.浏览器访问
我们可以看到解析出来的字段