久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

go語言的beego是什么

beego是一個使用Go語言開發(fā)的應用Web框架,目的是為大家提供一個高效率的Web應用開發(fā)框架,該框架采用模塊封裝。beego可以用來快速開發(fā)API、Web、后端服務等各種應用,是一個RESTFul的框架,主要設計靈感來源于tornado、sinatra、flask這三個框架,但是結合了Go本身的一些特性(interface、struct繼承等)而設計的一個框架。

go語言的beego是什么

本教程操作環(huán)境:windows7系統(tǒng)、GO 1.18版本、Dell G3電腦。

1. Beego簡介

1.1 beego是什么

Beego是一個使用Go語言開發(fā)的應用Web框架,框架開始于2012年,目的是為大家提供一個高效率的Web應用開發(fā)框架,該框架采用模塊封裝,使用簡單,容易學習。對程序員來說,beego掌握起來非常簡單,只需要關注業(yè)務邏輯實現即可,框架自動為項目需求提供不同的模塊功能。

beego可以用來快速開發(fā)API、Web、后端服務等各種應用,是一個RESTFul的框架,主要設計靈感來源于tornado、sinatra、flask這三個框架,但是結合了Go本身的一些特性(interface、struct繼承等)而設計的一個框架。

特性

  • 簡單化:支持RESTful風格、MVC模型;可以使用bee工具類提高開發(fā)效率,比如監(jiān)控代碼修改進行熱編譯,自動化測試代碼以及自動化打包部署等豐富的開發(fā)調試功能。
  • 智能化:beego框架封裝了路由模塊、支持智能路由、智能監(jiān)控,并可以監(jiān)控內存消耗,CPU使用以及goroutine的運行狀況,方便開發(fā)者對線上應用進行監(jiān)控分析。
  • 模塊化:beego根據功能對代碼進行了解耦封裝,形成了Session、Cache、Log、配置解析、性能監(jiān)控、上下文操作、ORM等獨立的模塊,方便開發(fā)者進行使用
  • 高性能:beego采用Go原生的http請求,goroutine的并發(fā)效率應付大流量的Web應用和API引用。

1.2 命令行工具Bee

bee

bee是一個開發(fā)工具,協(xié)助Beego框架開發(fā)項目是進行創(chuàng)建項目、運行項目、熱部署等相關的項目管理的工具,beego是源碼負責開發(fā)、bee是工具負責構建和管理項目。

USAGE     bee command [arguments]  AVAILABLE COMMANDS      version     Prints the current Bee version // 打印當前bee版本     migrate     Runs database migrations	// 運行數據庫的     api         Creates a Beego API application // 構建一個beego的API應用     bale        Transforms non-Go files to Go source files// 轉義非go的文件到go的src中區(qū)     fix         Fixes your application by making it compatible with newer versions of Beego // 通過使得新版本的beego兼容來修復應用     pro         Source code generator// 源代碼生成器     dev         Commands which used to help to develop beego and bee// 輔助開發(fā)beego和bee的     dlv         Start a debugging session using Delve// 使用delve進行debbugging     dockerize   Generates a Dockerfile for your Beego application // 為beego應用生成dockfile     generate    Source code generator// 源代碼生成器     hprose      Creates an RPC application based on Hprose and Beego frameworks     new         Creates a Beego application// 創(chuàng)建beego應用     pack        Compresses a Beego application into a single file // 壓縮beego項目文件     rs          Run customized scripts// 運行自定義腳本     run         Run the application by starting a local development server // 通過啟動本地開發(fā)服務器運行應用     server      serving static content over HTTP on port// 通過HTTP在端口上提供靜態(tài)內容     update      Update Bee// 更新bee
登錄后復制

// 創(chuàng)建一個beego項目 bee new FirstBeego // 運行beego項目 bee run
登錄后復制

go語言的beego是什么

2. 安裝beego

// 下載beego的安裝包 go get -u github.com/beego/beego/v2@v2.0.0 // 可能會與遇到錯誤,如下圖所示,然后開啟set GO111MODULE=on即可,go env可以看環(huán)境變量配置,mac/Linux使用export GO111MODULE=on即可 set GO111MODULE=on
登錄后復制

go語言的beego是什么

如果安裝還是沒有反應

set GO111MODULE=on set GOPROXY=https://goproxy.io  // 然后再執(zhí)行,即可完成安裝beego和bee $ go get -u github.com/beego/beego/v2 $ go get -u github.com/beego/bee/v2
登錄后復制

3. Beego啟動流程分析

3.1 程序入口

import ( 	_ "FirstBeego/routers" 	beego "github.com/beego/beego/v2/server/web" )  func main() { 	beego.Run() }  // -------------------routers------------------- import ( 	"FirstBeego/controllers" 	beego "github.com/beego/beego/v2/server/web" )  func init() {// 會先執(zhí)行init()函數     beego.Router("/", &controllers.MainController{}) }  // -------------------MainController------------------- type MainController struct { 	beego.Controller }  func (c *MainController) Get() { 	c.Data["Website"] = "beego.me" 	c.Data["Email"] = "astaxie@gmail.com" 	c.TplName = "index.tpl" }
登錄后復制

Go語言執(zhí)行順序

go語言的beego是什么

Beego的beego.Run()邏輯

執(zhí)行完init()方法之后,程序繼續(xù)向下執(zhí)行,到main函數,此時在main函數中執(zhí)行beego.Run(),主要做了以下幾件事:

  • 解析配置文件,即app.conf文件,獲取其中的端口、應用名稱等信息
  • 檢查是否開啟session,如果開啟了session,會初始化一個session對象
  • 是否編譯模板,beego框架會在項目啟動的時候根據配置把views目錄下的所有模板進行預編譯,然后存放在map中,這樣可以有效的提高模板運行的效率,不需要進行多次編譯
  • 監(jiān)聽服務端口,根據app.conf文件配置端口,啟動監(jiān)聽

4. Beego組織架構

項目配置:conf

控制器:controllers

該目錄是存放控制器文件的目錄,所謂控制器就是控制應用調用哪些業(yè)務邏輯,由controllers處理完HTTP請求以后,并負責返回給前端調用者。

數據層:models

models層可以解釋為實體層或者數據層,在models層中實現用戶和業(yè)務數據的處理,主要和數據庫表相關的一些操作會放在這個目錄中實現,然后將執(zhí)行后的結果數據返回給controller層。增刪改查的操作都是在models中實現。

路由層:routers

路由層,即分發(fā),對進來的后天的請求進行分發(fā)操作,當瀏覽器進行一個http請求達到后臺的web項目的時候,必須要讓程序能夠根據瀏覽器的請求url進行不同的業(yè)務處理,從接受前端請求到判斷執(zhí)行具體的業(yè)務邏輯的過程的工作,就讓routers來實現。

靜態(tài)資源目錄:static

在static目錄下,存放的是web項目的靜態(tài)資源文件,主要有css、img、js、html這幾類文件。html中會存放應用的靜態(tài)頁面文件。

視圖模板:views

views中存放的就是應用存放html模板頁面的目錄,所謂模板,就是頁面框架和布局是已經用html寫好了的,只需要在進行訪問和展示的時候,將獲取到的數據動態(tài)填充到頁面中,能夠提高渲染效率。因此,模板文件是非常常見的一種方式。

整個項目的架構就是MVC的運行模式。

5. beego框架路由設置

在beego框架中,支持四種路由設置,分別是:基礎路由固定路由正則路由自動路由

基礎路由

直接給過beego.Get()beego.Post()beego.Put()beego.Delete()等方法進行路由的映射,。

beego.Get("",func) // 表示Get beego.Post("",func) // 表示Post
登錄后復制

固定路由

beego.Router("/",controller)
登錄后復制

Get請求就會對應到Get方法,Post對應到post方法,Delete對應到Delete方法,Header方法對應到Header方法。

正則路由

正則路由是指可以在進行固定路由的基礎上,支持匹配一定格式的正則表達式,比如:id:username自定義正則,file的路徑和后綴切換以及全匹配等操作。

自定義路由

在開發(fā)的時候用固定匹配想要直接執(zhí)行對應的邏輯控制方法,因此beego提供了可以自定義的自定義路由配置。

beego.Router("/",&IndexController{},"")  // Router adds a patterned controller handler to BeeApp. // it's an alias method of HttpServer.Router. // usage: //  simple router //  beego.Router("/admin", &admin.UserController{}) //  beego.Router("/admin/index", &admin.ArticleController{}) // //  regex router // //  beego.Router("/api/:id([0-9]+)", &controllers.RController{}) // //  custom rules //  beego.Router("/api/list",&RestController{},"*:ListFood") //  beego.Router("/api/create",&RestController{},"post:CreateFood") //  beego.Router("/api/update",&RestController{},"put:UpdateFood") //  beego.Router("/api/delete",&RestController{},"delete:DeleteFood")
登錄后復制

6. 靜態(tài)文件的設置

在go的web項目中,一些靜態(tài)資源文件,如果用戶要訪問靜態(tài)資源文件,則我們也是能夠訪問到的,這需要我們的項目中進行靜態(tài)資源設置。

beego.SetStaticPath("/down1","download1")
登錄后復制

這里的download目錄是指的非go web項目的static目錄下目錄,而是開發(fā)者重新新建的另外的目錄。

7. Beego博客項目

beego的orm是可以自動創(chuàng)建表的,與python的django框架有的一拼。

在Go中Object類型的數據使用interface{}空的接口類型來代替。

如果有js文件失效,注意清除緩存之后再來玩,否則添加的js不會生效。

// 首頁顯示內容,f func MakeHomeBlocks(articles []Article, isLogin bool) template.HTML { 	htmlHome := "" 	// for index, value := range objects{} 實現遍歷 	for _, art := range articles { 		// 轉換為模板所需要的數據 		homePageParam := HomeBlockParam{} 		homePageParam.Id = art.Id 		homePageParam.Title = art.Title 		homePageParam.Tags = createTagsLinks(art.Tags) 		homePageParam.Short = art.Short 		homePageParam.Content = art.Content 		homePageParam.Author = art.Author 		homePageParam.CreateTime = utils.SwitchTimeStampToData(art.CreateTime) 		homePageParam.Link = "/article/" + strconv.Itoa(art.Id) 		homePageParam.UpdateLink = "/article/update?id=" + strconv.Itoa(art.Id) 		homePageParam.DeleteLink = "/article/delete?id=" + strconv.Itoa(art.Id) 		homePageParam.IsLogin = isLogin  		// 處理變量,利用ParseFile解析該文件,用于插入變量 		t, _ := template.ParseFiles("views/block/home_block.html") 		buffer := bytes.Buffer{} 		t.Execute(&buffer, homePageParam) 		htmlHome += buffer.String() 	} 	fmt.Println("htmlHome ===>", htmlHome) 	return template.HTML(htmlHome) } // 這里可以實現html模板的渲染和追加 最后以html代碼的形式插入到具體的前端html展示頁面
登錄后復制

博客項目大概做了三天吧。就搞完了。基本的代碼都是MVC結構,跟Java比較像,不過對HTML的支持,感覺beego做的更好一些。讓人使用起來就很舒服的感覺。其他的就下面總結一下吧:

beego的項目目錄結構如下:

go語言的beego是什么

負責和數據庫交互的是model,model主要存放實體類和承接具體的數據請求等相關的方法操作,提供數據給controller層。

go語言的beego是什么

路由的話主要有四種:

  • 默認路由:beego自帶模塊Post、Put、Delete、Head、Get等網絡請求類型的對應方法

  • 自動路由:自動實現映射到Post、Put、Delete、Get等

  • 正則表達式路由:"/article/:id"接收參數的時候需要idStr := this.Ctx.Input.Param(":id")

  • 自定義路由:在博客開發(fā)中基本就是自定義路由了/article/add

Session的處理:

  • 配置文件中配置session相關的配置
  • 代碼中通過SessionConfig進行參數配置

操作session

  • SetSession:設置session值
  • GetSession:獲取session值
  • DelSession:刪除session值

View視圖模板:

  • controller.TplName指定渲染當前頁面的模板文件全稱
  • 模板文件中通過{{.param}}實現變量數據的獲取操作
  • controller.Data["param"]=xxx實現對頁面的需要使用的變量進行賦值操作

項目打包運行

// 項目可以部署在linux上面,一般通過bee來實現直接打包,打包命令為 bee pack -be GOOS=linux // linux上可以沒有go的環(huán)境
登錄后復制

如果直接通過這個命令打包的話,會生成一個tar.gz的壓縮文件,此時我們可以tar -zxvf xxx.tar.gz進行解壓縮。

然后對項目文件賦予執(zhí)行權:chmod +x myblog即可配置到執(zhí)行權。如果現在直接執(zhí)行的話會報錯:

beego panic: err: go command required, not found: exec: “go”: executable file not found in $PATH: stderr:

解決辦法是把conf中的runmode=dev修改為runmode=prod即可實現執(zhí)行。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩在线短视频| 精品欧美久久| 美女国产一区| 亚洲一区国产| 四虎在线精品| 国产麻豆一区二区三区精品视频| 日韩综合一区二区| 亚洲精品福利| 国产精品成人3p一区二区三区| 国产精品一区二区中文字幕| 欧美激情一区| 国产福利电影在线播放| 99久久久久国产精品| 欧美日韩激情| 日本亚洲视频在线| 久久av综合| 精品视频免费| 亚洲天堂1区| 亚州国产精品| 国产在线观看91一区二区三区| 日本а中文在线天堂| 亚洲精品123区| 国产精品手机在线播放| 日韩免费福利视频| 免费久久精品视频| 国产一区二区三区91| 婷婷精品进入| 国产精品久久久久久久久免费高清| 新版的欧美在线视频| 人人精品人人爱| 国产一区二区三区四区五区传媒| 新版的欧美在线视频| 免费视频国产一区| 国产精品资源| 丝袜脚交一区二区| 97精品国产福利一区二区三区| 免费在线观看日韩欧美| av资源中文在线| 日韩高清在线一区| 99久久精品费精品国产| 国产精品久久亚洲不卡| 尤物在线精品| 欧美日韩视频网站| 韩国女主播一区二区三区| 亚洲涩涩av| 一区视频在线| 成午夜精品一区二区三区软件| 免费日韩av片| 亚洲性视频h| 日韩另类视频| 麻豆网站免费在线观看| 毛片不卡一区二区| 国产日产一区| 欧美久久一区二区三区| 久热精品在线| 日韩中文字幕不卡| 精品91久久久久| 欧美成人高清| 免费观看久久av| 欧美日韩黑人| 久久成人亚洲| 日韩一区二区三区高清在线观看| 亚洲播播91| 欧美日韩尤物久久| 欧美成人a交片免费看| 精品久久福利| 97精品一区二区| 九九精品调教| 蜜桃国内精品久久久久软件9| 欧美精品资源| 亚洲一区二区网站| 日本久久二区| 精品五月天堂| 色老板在线视频一区二区| 久久国产中文字幕| 中文精品电影| 你懂的网址国产 欧美| 国产亚洲欧美日韩在线观看一区二区| 日韩欧乱色一区二区三区在线| 国产欧美自拍| 日韩免费在线| 亚洲日本久久| 久久精品国产网站| 国产精品99免费看| 日韩精品欧美大片| 精品久久影院| 日韩在线a电影| 久久麻豆视频| 欧美日韩在线二区| 日韩高清不卡一区二区| 97人人精品| 日韩在线电影| 精品国产欧美| 久久国产福利| 国产精品videosex极品| 久久久久美女| 国产亚洲一卡2卡3卡4卡新区| 99精品视频在线观看免费播放| 蜜桃一区二区三区在线| 国内自拍视频一区二区三区| 蜜桃久久精品一区二区| 国产第一亚洲| 日韩精品一区二区三区中文在线 | 久久久亚洲欧洲日产| 亚洲一级特黄| 国产精品香蕉| 日日夜夜免费精品视频| 欧美亚洲国产激情| 欧美激情日韩| 日韩一区二区三区在线看| 久久久久国产精品一区二区| 国产精品探花在线观看| 蜜芽一区二区三区| 久久久9色精品国产一区二区三区| 奇米777国产一区国产二区| 99精品视频在线| 精品久久久久中文字幕小说| 性色一区二区| 国产精品呻吟| 亚洲色诱最新| 亚洲一级二级| 亚洲精品1区2区| 亚洲免费成人| 黄色日韩在线| 国产毛片久久| 午夜欧美精品久久久久久久| 国产v综合v| 在线日韩av| 中文一区二区| 日韩欧美1区| 成人免费网站www网站高清| 亚洲精品.com| 美女精品网站| 美女福利一区二区三区| 日韩精品三区四区| 四虎国产精品免费观看| 鲁鲁在线中文| 国产一区二区三区不卡av| 亚洲精品日本| 国模精品一区| 视频国产精品| 久久一区二区三区喷水| 国产精品s色| 一区二区91| 欧美美女一区| 久久亚洲黄色| 亚洲tv在线| 日本欧美在线看| 亚洲黄页一区| 女同性一区二区三区人了人一| 国产suv精品一区二区四区视频 | 欧美日本一区| 亚洲午夜91| 美女久久久久久 | 免费美女久久99| 成人国产精品| 日韩欧美激情电影| 亚洲精品中文字幕乱码| 精品国产a一区二区三区v免费| 亚洲激情中文| av在线最新| 久久中文字幕一区二区| 91麻豆精品| 综合激情视频| 婷婷综合网站| 人人精品亚洲| 国产aⅴ精品一区二区三区久久| 日韩综合小视频| 亚洲精品裸体| 蜜臀av性久久久久蜜臀aⅴ四虎| 91精品国产调教在线观看| 久久久久黄色| 精品五月天堂| 国产一区二区三区不卡视频网站 | 国产成人精品福利| 91欧美日韩在线| 日韩专区视频网站| 亚洲精品在线国产| 丝袜脚交一区二区| 亚洲综合中文| 97久久超碰| 国产一区丝袜| 欧洲精品一区二区三区| 久久久久久久久丰满| 久久精品国语| 亚洲精品在线观看91| 久久高清免费观看| 亚洲一区亚洲| 国产高清一区二区| 日韩中文字幕视频网| 国产乱人伦精品一区| 精品九九久久| 欧美日韩国产在线观看网站| 久热精品在线| 久久超碰99| 久久网站免费观看| 蜜桃视频在线观看一区| 久久99精品久久久久久园产越南| 电影91久久久| 日韩视频在线一区二区三区 |