iris-v12 框架搭建二 mvc架构

iris-v12 框架搭建二 mvc架构

在这里我就默认你已经会了搭建非mvc架构的方法(不懂得看iris-v12 框架搭建一 快速启动)。
想要搭建mvc的架构非常简单,只要使用iris的mvc包就好了。不过在此之前我们需要先学习一下路由组的构建。

import (
	"fmt"

	"github.com/kataras/iris/v12"
)

func main() {
	//使用默认配置
	//该实例在生成状态下在"./views"上注册html视图引擎,
	//并从"./locales/*/*"加载区域设置。
	//实例在出现死机时恢复,并记录传入的http请求。
	app := iris.Default()

	// 将/v1下的所有路径分到同一组
	v1 := app.Party("/v1")
	{
		// Method:   POST
		// url: http://localhost:8080/v1/best
		v1.Post("/best",
			func(ctx iris.Context) {
				fmt.Println("把街角魔族是动漫增加最好看的")
			})
		// Method:   DELETE
		// url: http://localhost:8080/v1/other
		v1.Delete("/other", func(ctx iris.Context) {
			fmt.Println("删除街角魔族以外的动漫")
		})
		// Method:   PUT
		// url: http://localhost:8080/v1/anime
		v1.Put("/anime",
			func(ctx iris.Context) {
				fmt.Println("把街角魔族是好看的动漫修改为最好")
			})
		// Method:   GET
		// url: http://localhost:8080/v1/anime
		v1.Get("/anime", func(ctx iris.Context) {
			fmt.Println("增加街角魔族是最好看的动漫")
		})
	}
	app.Run(iris.Addr(":8080"))
}

依次尝试每一个路由后的结果⬇

Application started. Press CTRL+C to shut down.
把街角魔族是动漫增加最好看的
[INFO] 2020/06/30 08:48 200 1.995ms ::1 POST /v1/best
删除街角魔族以外的动漫
[INFO] 2020/06/30 08:48 200   0s ::1 DELETE /v1/other
把街角魔族是好看的动漫修改为最好
[INFO] 2020/06/30 08:48 200 998.8µs ::1 PUT /v1/anime
增加街角魔族是最好看的动漫
[INFO] 2020/06/30 08:49 200   0s ::1 GET /v1/anime

ok可以看的出来/v1下的路由都被归类起来了。那么按照mvc的方式只要把这个路由组传递给controller处理就ok了⬇
将上面代码中从v1 := app.Party("/v1")到结尾的代码更改为以下内容

	// 将/v1下的所有路径分到同一组
	v1 := app.Party("/v1")
	//基于“party”返回一个新的mvc应用程序。
	//应用程序创建一个新的引擎,负责绑定依赖项并创建和激活应用程序的控制器。
	v1App := mvc.New(v1)
	//Handle为当前mvc应用程序的路由器提供控制器。
	v1App.Handle(new(controllers.ViewController))
	app.Run(iris.Addr(":8080"))

新建文件夹controllers,在controllers下创建viewController.go
注意项

  1. viewController这个结构体内还可以放许多东西例如session,service之类的,不过我们现在仅展示页面的话什么都不需要。
  2. mvc.View这个结构体还有Code,Err等,这一类属性,有兴趣自己去看看源码就懂了。
  3. Data: iris.Map{“xxx”: interface{}},htm里用{{.xxx}}的方式接收
  4. 对方法的花式取名方式和返回与接收各类格式内容感兴趣的可以看我下一篇内容。
package controllers

import (
	"github.com/kataras/iris"
	"github.com/kataras/iris/v12/mvc"
)

type ViewController struct {
	Ctx iris.Context
}

//注意 这里的方法名不能随意取名
//名字的开头是url的method,后面以大写字母为分隔路径
//如果路径感觉过长可以继续再给路由组v1分组,用多个controller接收
//此处url:http://localhost:8080/v1/views/hello,method:GET
func (v *ViewController) GetViewsHello() mvc.View {

	helloView := mvc.View{
		//文件名,视图文件必须放在views文件夹下,因为这是app := iris.Default()默认的
		//当然你也可以自己设置存放位置
		Name: "hello.html",
		//传入的数据
		Data: iris.Map{"content": "街角魔族是最好看的动漫"},
	}

	return helloView
}

新建文件夹views,在views下创建hello.html

<!DOCTYPE HTML>
<html>
<body>

<h1>{{.content}}</h1>

</body>
</html>

调用url:http://localhost:8080/v1/views/hello
iris-框架搭建二
以上一个简单的mvc结构就完成了。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值