go語言之beego框架

一.前言

1.Beego框架是go語言開發的web框架。
2.beego官網網址: https://beego.me/

二.項目結構

基於MVC架構,其基本目錄如下
在這裏插入圖片描述

  • conf文件夾:放的是項目有關的配置文件
  • Controllers:存放主要的業務代碼
  • main.go:項目的入口文件
  • Models:存放的是數據庫有關內容
  • routers:存放路由文件,路由作用是根據不同的請求指定不同的控制器
  • static:存放靜態資源,包括圖片,html頁面,css樣式,js文件等
  • tests:測試文件
  • Views:存放視圖有關內容

三.環境搭建

go get -u -v github.com/astaxie/beego
go get -u -v github.com/beego/bee

ps:

1.go get使用時的附加參數

附加參數 備 注
-v 顯示日誌
- 下載丟失的包,但不會更新已經存在的包

2.go get無法訪問問題

如果你遇到此類問題,可以先掛上代理,保證google能訪問.
然後打開cmd執行以下命令即可

set http_proxy=127.0.0.1:1080
set https_proxy=127.0.0.1:1080

3.離線搭建beego環境

A.步驟一.下載本地zip包

如果你沒有網或者沒有搭建git環境,可以先去以下地址下載本地zip
github.com/astaxie/beego
github.com/beego/bee

B.解壓至指定目錄

bee.zip解壓至C:\Users\你的用戶名\go\src\github.com\beego\bee目錄下
beego.zip你隨意

C.安裝bee

執行

go install github.com\beego\bee

此時會在C:\Users\你的用戶名\go\bin 目錄下生成一個bee.exe文件
cmd切換至該目錄,執行

bee new 你的項目名稱

即可新建一個beego項目

四.環境搭建

安裝好之後,運行

bee new 你的項目名稱

來創建一個項目,注意:通過bee創建的項目代碼都是在$GOPATH/src 目錄下

五.運行項目

1.進入項目目錄執行 bee run 命令,在瀏覽器輸入網址:127.0.0.1:8080
2.使用goLand打開項目,找到main.go文件,運行
3.使用goLand打開項目,在項目名稱上右擊,運行

***注意:只有使用bee run命令該beego項目才具有熱更新功能,推薦使用

六.beego運行流程分析

在這裏插入圖片描述

七.controllers

打開controllers/default.go文件內容如下

package controllers

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

type MainController struct {
	beego.Controller
}

func (c *MainController) Get() {
	c.Data["Website"] = "beego.me"
	c.Data["Email"] = "[email protected]"
	c.TplName = "index.tpl"
}

其中,Get方法下

  • c.TplName 代表指向的html
  • c.Data[“key”] = “value” 爲map類型,可在html中使用
<h1>{{.key}}</h1>

八.Router

package routers

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

func init() {

	//所有路徑都由MainController處理
    beego.Router("/", &controllers.MainController{})
    
	//參數1:http相對路徑
	//參數2:該路徑對應控制器,
	// 參數3:不傳默認get請求由GET()方法處理,post請求由POST()方法處理
    beego.Router("/index", &controllers.MainController{})
    
    //修改get請求爲GetFuc()方法處理 
    // !!!!注意:POST()方法不再處理post請求
    beego.Router("/index", &controllers.MainController{},"get:GetFuc")
    
	//修改get請求爲GetFuc()方法處理 Post方法爲PostFuc()
    beego.Router("/index", &controllers.MainController{},"get:GetFuc;post:PostFuc")
    
    //get,post請求都由APIFuc()處理
    beego.Router("/index", &controllers.MainController{},"get,post:APIFuc")
    
    //所有請求都由AllFuc()方法處理
    beego.Router("/index", &controllers.MainController{},"*:AllFuc")
}

***注意:參數三隻修改Get請求的指向方法,會導致其他請求如POST的默認指向失效
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章