創建一個beego項目,目錄結構如下,路由,控制器,數據模型

1、創建一個新項目 bee new gowork
  典型的MVC架構,目錄結構如下
    gowork
    |-- conf
    |   `-- app.conf
    |-- controllers
    |   `-- default.go      ----------------控制器邏輯文件
    |-- main.go             ----------------入口文件
    |-- models
    |-- routers
    |   `-- router.go       ------------------路由文件
    |-- static
    |   |-- css
    |   |-- img
    |   `-- js
    |-- tests
    |   `-- default_test.go
    |-- views               ------------------模板文件
    |   `--index.tpl
  解析:
    (1)路由文件:routers/router.go
        package routers

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

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

        	// 增加一條路由,通過訪問 /user就能執行 UserController控制器
        	beego.Router("/user", &controllers.UserController{})
        }
    (2)控制器文件:controllers\default.go
        package controllers

        import (
        	"github.com/astaxie/beego"
        )
        // 聲明瞭一個控制器MainController,這個控制器裏面內嵌了beego.Controller,這就是 Go 的嵌入方式,類似於類的繼承
        // MainController擁有了父類beego.Controller所有的方法Init、Prepare、Post、Get、Delete
        type MainController struct {
        	beego.Controller
        }

        func (c *MainController) Get() {
        	c.Data["Website"] = "beego.me"
        	c.Data["Email"] = "[email protected]"
        	c.TplName = "index.tpl"
        }
        // 新建一個控制器 UserController
        type UserController struct {
        	beego.Controller
        }

        func (c *UserController) Get() {
        	c.Data["Website"] = "小紅"
        	c.Data["Email"] = "[email protected]"
        	// 渲染到模板文件 views\user.tpl
        	c.TplName = "user.tpl"
        	// this.Ctx.WriteString 直接輸出字符串
        	// this.Ctx.WriteString("hello")
        }
    (3)模板文件:views\user.tpl
        <!DOCTYPE html>
        <html>
        <head>
          <title>小紅</title>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
          <style type="text/css">
          </style>
        </head>

        <body>
          <header>
            <h1 class="logo">蒙多是個大噴子</h1>
            <div class="description">
                窗前明月光,疑是地上霜
            </div>
          </header>
          <footer>
            <div class="author">
              <a href="http://{{.Website}}">{{.Website}}</a> /
              <a class="email" href="mailto:{{.Email}}">{{.Email}}</a>
            </div>
          </footer>
          <div class="backdrop"></div>

          <script src="/static/js/reload.min.js"></script>
        </body>
        </html>



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章