golang : MVC之view

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/textdemo123/article/details/102777180

背景:
本篇使用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.浏览器访问
我们可以看到解析出来的字段
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191028105315739.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RleHRkZW1vMTIz,size_16,color_FFFFFF,t_70

猜你喜欢

转载自blog.csdn.net/textdemo123/article/details/102777180
今日推荐