代码改变世界

beego学习笔记(4):开发文档阅读(3)

2018-07-01 12:37  很大很老实  阅读(324)  评论(0编辑  收藏  举报

通过运行 bee new quickstart 来创建新的项目,其结构如下:

quickstart
|-- conf
|   `-- app.conf
|-- controllers
|   `-- default.go
|-- main.go
|-- models
|-- routers
|   `-- router.go
|-- static
|   |-- css
|   |-- img
|   `-- js
|-- tests
|   `-- default_test.go
`-- views
    `-- index.tpl

 然后通过bee run来运行项目。

在main函数里,我们看到:

import (
	_ "mynewbeego/routers"
	"github.com/astaxie/beego"
)

 有2个import,而我们知道,go的执行顺序是:

我们先去看看,router这个,是做了啥

 

routers目录下,只有一个router.go文件,里面只有一个init函数(这个会被执行)

func init() {
    beego.Router("/", &controllers.MainController{})
}

 但是,我们看其的import:

import (
	"mynewbeego/controllers"
	"github.com/astaxie/beego"
)

 一层层,继续去看:controllers:

其下面只有一个default.go 文件:

type MainController struct {
	beego.Controller
}

func (c *MainController) Get() {
	c.Data["Website"] = "beego.me"
	c.Data["Email"] = "astaxie@gmail.com"
	c.TplName = "index.tpl"
}

 这里是匿名组合,也即是传统的继承。