3. beeGo 自己寫Controller 和 請求數據處理


Controller

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

開始動手

  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,所以記得修改。

然后我們重啟下beeGo,訪問http://127.0.0.1/test 就可以看到我們自己返回的內容了。

獲取用戶請求數據的方法

用戶通常通過Get,Post等方式來發送數據,beeGo里面會自動解析這些數據,我們可以用下面這些方法來處理。

  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加上對應的路由規則

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM