3. beeGo 本身寫Controller 和 請求數據處理

Controller

Controller等同於Django裏的view,處理邏輯都是在Controller裏面完成的,下面就寫一個最簡單的Controller。
咱們在寫本身的controller的時候,必定要繼承beego.Controller,也必定要記得導入 github.com/astaxie/beegogit

開始動手

  1. 咱們先在router/router.go裏面添加一條路由,路由指向咱們本身的目錄,
beego.Router("/test", &controllers.TestContronller{}, "get:SelfTest")
  1. 而後在controllers目錄下建立一個test.go文件,文件代碼以下:
// test
package controllers  // 包必定是這個名

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

type TestContronller struct {
    beego.Controller
}

func (c *TestContronller) SelfTest() {
    c.Ctx.WriteString("this is myself  controller!")
}

注意這個package 必須是controllers,新建的話通常都是main,因此記得修改。github

而後咱們重啓下beeGo,訪問http://127.0.0.1/test 就能夠看到咱們本身返回的內容了。this

獲取用戶請求數據的方法

用戶一般經過Get,Post等方式來發送數據,beeGo裏面會自動解析這些數據,咱們能夠用下面這些方法來處理。code

  1. GetString(key string) string
  2. GetStrings(key string) []string
  3. GetInt(key string) (int64,error)
  4. GetBool(key string)(bool,error)
  5. GetFloat(key string)(float64,error)

小試身手

GetString

咱們先從GetString 這個方法來作:
1 先在router.go加上對應的路由規則router

beego.Router("/getdata", &controllers.TestContronller{}, "get:GetData")

2 而後在controllers/test.go裏面寫上本身的代碼,繼承

package controllers

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

type TestContronller struct {
    beego.Controller
}


func (c *TestContronller) GetData() {
    id := c.GetString("id")
    c.Ctx.WriteString(id)
    name := c.Input().Get("name")
    c.Ctx.WriteString(name)
}

代碼寫完後重啓,此時,咱們訪問 http://127.0.0.1/getdata?id=hehe&name=lisis 那麼頁面就會顯示 hehe lisis路由

相關文章
相關標籤/搜索