golang : MVC之view

背景:
本篇使用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的定义
golang : MVC之view_第1张图片
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的路由即可
golang : MVC之view_第2张图片
4.重新启动程序
bee run
golang : MVC之view_第3张图片
5.浏览器访问
我们可以看到解析出来的字段
golang : MVC之view_第4张图片

你可能感兴趣的:(go语言编程)