beego 采用了 Go 语言默认的模板引擎
-
指定模板:c.TplName = "index.tpl"
-
默认支持tpl和html
-
beego.AddTemplateExt设置其他后缀
-
beego.AddTemplateExt("后缀名")
-
-
如果不设置该参数,那么默认会去到模板目录的 Controller/<方法名>.tpl 查找,例如上面的方法会找 maincontroller/get.tpl
-
-
数据渲染:c.Data["Website"] = "beego.me"
-
前端获取数据:{ {.Website } } 两个换括号中变量名前有个点,这个点表示当前对象
-
设置模板路径:
-
beego默认的路径是view,可以自己设置
-
重新设置模板路径:
-
beego.SetViewsPath("testview")
-
配置文件中设置:viewspath = "myview"
-
当然我们不需要模板输出的,比如我们只写接口,我们可以手动关闭模板渲染
-
在配置文件设置
-
autorender = false
-
-
在main.go中设置
-
beego.BConfig.WebConfig.AutoRender = false
-
-
示例:定义新的路由和传递简单数据
-
controller中可以新建自己的包,包中新建go文件,注意package名,这里的package名会在路由里面使用,可以把controller层写到这个go文件中,如下:
在controller中新建了一个包user,里面有一个user.go文件
user.go,package叫controllers_user:
package controllers_user
import "github.com/astaxie/beego"
type UserController struct{
beego.Controller
}
func(c*UserController)Get(){
c.TplName="user.html"
c.Data["username"]="zlkt"
}
在router中定义路由:
package routers
import(
"beego_project/controllers"
"github.com/astaxie/beego"
"beego_project/controllers/user"
)
func init(){
beego.Router("/",&controllers.MainController{})
beego.Router("/user",&controllers_user.UserController{})
}
项目实战案例 传送门