beego模板渲染

1,568 阅读1分钟

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{})

}

项目实战案例 传送门