创建一个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"] = "astaxie@gmail.com"
        	c.TplName = "index.tpl"
        }
        // 新建一个控制器 UserController
        type UserController struct {
        	beego.Controller
        }

        func (c *UserController) Get() {
        	c.Data["Website"] = "小红"
        	c.Data["Email"] = "xiaohong@gmail.com"
        	// 渲染到模板文件 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>



 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页