Go framework-Beego

一、Beego

????????Beego用于在Go中快速開發企業應用程序,包括RESTful API、web應用程序和后端服務。

Beego 源碼地址

Beego 官方站點

Beego 官方說明

Beego的特性

  • RESTful支持
  • MVC架構
  • 模塊化
  • 自動API文檔
  • 注釋路由
  • 命名空間
  • 開發工具集合
  • Full stack for Web & API

Beego的模塊

  • orm,對象關系映射
  • session,會話
  • logs,日志
  • config,配置
  • cache,緩存

1、創建Beego項目

Go Web--Go Module

Beego 官方說明

1.1、命令行方式創建項目


D:\GO_workspace_web>md test_beegoD:\GO_workspace_web>cd test_beegoD:\GO_workspace_web\test_beego>go mod init test_beego
go: creating new go.mod: module test_beegoD:\GO_workspace_web\test_beego>

下載并安裝beego/v2

D:\GO_workspace_web\test_beego>go get github.com/beego/beego/v2@latestD:\GO_workspace_web\test_beego>

下面使用GoLand軟件打開新建的項目

編寫main.go

package mainimport "github.com/beego/beego/v2/server/web"func main() {web.Run()
}

啟動項目

?測試:http://localhost:8080/

?看到上面頁面說明beego項目啟動成功

1.2、使用bee工具

安裝 Bee 工具

go get -u github.com/beego/bee/v2@latestD:\GO_workspace_web\test_beego>go get -u github.com/beego/bee/v2@latest
go: downloading github.com/beego/bee/v2 v2.1.0
go: downloading github.com/beego/bee v1.12.3
go: downloading gopkg.in/yaml.v2 v2.4.0
go: downloading github.com/fsnotify/fsnotify v1.4.9
go: downloading github.com/go-delve/delve v1.20.2
go: downloading github.com/gorilla/websocket v1.4.2
go: downloading github.com/beego/beego/v2 v2.1.0
go: downloading github.com/fsnotify/fsnotify v1.6.0
go: downloading github.com/gorilla/websocket v1.5.0
go: downloading github.com/go-delve/delve v1.21.0
go: downloading github.com/beego/beego v1.12.12
go: downloading github.com/beego/beego/v2 v2.1.1
go: downloading github.com/go-sql-driver/mysql v1.7.0
go: downloading github.com/lib/pq v1.10.5
go: downloading golang.org/x/tools v0.1.12
go: downloading github.com/flosch/pongo2 v0.0.0-20200529170236-5abacdfa4915
go: downloading github.com/smartwalle/pongo2render v1.0.1
go: downloading github.com/pelletier/go-toml v1.9.2
go: downloading github.com/spf13/viper v1.7.0
go: downloading github.com/spf13/viper v1.16.0
go: downloading golang.org/x/sys v0.6.0
go: downloading github.com/go-sql-driver/mysql v1.7.1
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/shiena/ansicolor v0.0.0-20200904210342-c7312218db18
go: downloading github.com/smartwalle/pongo2render v1.0.2
go: downloading github.com/lib/pq v1.10.9
go: downloading github.com/flosch/pongo2 v0.0.0-20200913210552-0d938eb266f3
go: downloading github.com/hashicorp/golang-lru v0.5.4
go: downloading github.com/prometheus/client_golang v1.15.1
go: downloading golang.org/x/crypto v0.0.0-20220315160706-3147a52a75dd
go: downloading github.com/hashicorp/golang-lru v1.0.2
go: downloading github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02
go: downloading github.com/prometheus/client_golang v1.16.0
go: downloading github.com/cosiner/argv v0.1.0
go: downloading github.com/derekparker/trie v0.0.0-20221213183930-4c74548207f4
go: downloading github.com/go-delve/liner v1.2.3-0.20220127212407-d32d89dd2a5d
go: downloading github.com/mattn/go-colorable v0.0.9
go: downloading github.com/derekparker/trie v0.0.0-20221221181808-1424fce0c981
go: downloading github.com/mattn/go-isatty v0.0.3
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/hashicorp/hcl v1.0.0
go: downloading github.com/magiconair/properties v1.8.1
go: downloading github.com/mitchellh/mapstructure v1.5.0
go: downloading github.com/spf13/afero v1.1.2
go: downloading github.com/spf13/cast v1.3.0
go: downloading github.com/spf13/jwalterweatherman v1.0.0
go: downloading github.com/magiconair/properties v1.8.7
go: downloading github.com/spf13/pflag v1.0.5
go: downloading github.com/spf13/afero v1.9.5
go: downloading github.com/spf13/cast v1.5.1
go: downloading github.com/subosito/gotenv v1.2.0
go: downloading github.com/spf13/jwalterweatherman v1.1.0
go: downloading gopkg.in/ini.v1 v1.51.0
go: downloading github.com/subosito/gotenv v1.6.0
go: downloading gopkg.in/ini.v1 v1.67.0
go: downloading golang.org/x/net v0.7.0
go: downloading github.com/prometheus/client_model v0.3.0
go: downloading github.com/prometheus/common v0.42.0
go: downloading github.com/prometheus/client_model v0.4.0
go: downloading github.com/prometheus/common v0.44.0
go: downloading golang.org/x/arch v0.0.0-20190927153633-4e8777c89be4
go: downloading github.com/sirupsen/logrus v1.6.0
go: downloading github.com/mattn/go-runewidth v0.0.13
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading go.starlark.net v0.0.0-20220816155156-cfacd8902214
go: downloading github.com/mattn/go-runewidth v0.0.15
go: downloading golang.org/x/text v0.7.0
go: downloading github.com/google/go-dap v0.7.0
go: downloading go.starlark.net v0.0.0-20230814145427-12f4cb8177e4
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/cespare/xxhash/v2 v2.2.0
go: downloading github.com/prometheus/procfs v0.9.0
go: downloading golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading github.com/golang/protobuf v1.5.3
go: downloading github.com/matttproud/golang_protobuf_extensions v1.0.4
go: downloading github.com/google/go-dap v0.10.0
go: downloading github.com/prometheus/procfs v0.11.1
go: downloading github.com/cilium/ebpf v0.7.0
go: downloading github.com/konsorten/go-windows-terminal-sequences v1.0.3
go: downloading github.com/rivo/uniseg v0.2.0
go: downloading github.com/rivo/uniseg v0.4.4
go: downloading github.com/cilium/ebpf v0.11.0
go: downloading github.com/flosch/pongo2/v6 v6.0.0
go: downloading golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2
go: downloading golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb
go: added github.com/beego/bee/v2 v2.1.0
go: added github.com/beego/beego/v2 v2.1.1
go: added github.com/beorn7/perks v1.0.1
go: added github.com/cespare/xxhash/v2 v2.2.0
go: added github.com/cilium/ebpf v0.11.0
go: added github.com/cosiner/argv v0.1.0
go: added github.com/davecgh/go-spew v1.1.1
go: added github.com/derekparker/trie v0.0.0-20221221181808-1424fce0c981
go: added github.com/flosch/pongo2 v0.0.0-20200913210552-0d938eb266f3
go: added github.com/flosch/pongo2/v6 v6.0.0
go: added github.com/fsnotify/fsnotify v1.6.0
go: added github.com/go-delve/delve v1.21.0
go: added github.com/go-delve/liner v1.2.3-0.20220127212407-d32d89dd2a5d
go: added github.com/go-sql-driver/mysql v1.7.1
go: added github.com/golang/protobuf v1.5.3
go: added github.com/google/go-dap v0.10.0
go: added github.com/gorilla/websocket v1.5.0
go: added github.com/hashicorp/golang-lru v1.0.2
go: added github.com/hashicorp/hcl v1.0.0
go: added github.com/konsorten/go-windows-terminal-sequences v1.0.3
go: added github.com/lib/pq v1.10.9
go: added github.com/magiconair/properties v1.8.7
go: added github.com/mattn/go-colorable v0.1.13
go: added github.com/mattn/go-isatty v0.0.19
go: added github.com/mattn/go-runewidth v0.0.15
go: added github.com/matttproud/golang_protobuf_extensions v1.0.4
go: added github.com/mitchellh/mapstructure v1.5.0
go: added github.com/pelletier/go-toml v1.9.5
go: added github.com/pelletier/go-toml/v2 v2.0.9
go: added github.com/pkg/errors v0.9.1
go: added github.com/prometheus/client_golang v1.16.0
go: added github.com/prometheus/client_model v0.4.0
go: added github.com/prometheus/common v0.44.0
go: added github.com/prometheus/procfs v0.11.1
go: added github.com/rivo/uniseg v0.4.4
go: added github.com/shiena/ansicolor v0.0.0-20230509054315-a9deabde6e02
go: added github.com/sirupsen/logrus v1.9.3
go: added github.com/smartwalle/pongo2render v1.0.2
go: added github.com/spf13/afero v1.9.5
go: added github.com/spf13/cast v1.5.1
go: added github.com/spf13/jwalterweatherman v1.1.0
go: added github.com/spf13/pflag v1.0.5
go: added github.com/spf13/viper v1.16.0
go: added github.com/subosito/gotenv v1.6.0
go: added go.starlark.net v0.0.0-20230814145427-12f4cb8177e4
go: added golang.org/x/arch v0.4.0
go: added golang.org/x/crypto v0.12.0
go: added golang.org/x/exp v0.0.0-20230811145659-89c5cff77bcb
go: added golang.org/x/mod v0.12.0
go: added golang.org/x/net v0.14.0
go: added golang.org/x/sys v0.11.0
go: added golang.org/x/text v0.12.0
go: added golang.org/x/tools v0.12.0
go: added google.golang.org/protobuf v1.31.0
go: added gopkg.in/ini.v1 v1.67.0
go: added gopkg.in/yaml.v2 v2.4.0
go: added gopkg.in/yaml.v3 v3.0.1D:\GO_workspace_web\test_beego>

在bee命令安裝:$GOPATH/bin中,保證$GOPATH/bin位于系統環境變量path中

D:\GO_workspace_web\test_beego>go env GOPATH
C:\Users\Administrator\go

For Go 1.18 and newer Go versions run:

go install github.com/beego/bee/v2@latest

And then:

bee versionD:\GO_workspace_web\test_beego>bee version
2023/08/17 00:10:34.189 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
2023/08/17 00:10:34 INFO     ? 0001 Getting bee latest version...
2023/08/17 00:10:36 INFO     ? 0002 Your bee are up to date
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0├── GoVersion : go1.20.6
├── GOOS      : windows
├── GOARCH    : amd64
├── NumCPU    : 8
├── GOPATH    : C:\Users\Administrator\go
├── GOROOT    : C:\Program Files\Go
├── Compiler  : gc
└── Date      : Thursday, 17 Aug 2023D:\GO_workspace_web\test_beego>

使用bee工具創建項目

1、bee api,創建API應用

D:\GO_workspace_web\test_beego>cd ..D:\GO_workspace_web>bee api test_beego1
2023/08/17 00:21:38.410 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0
2023/08/17 00:21:38 INFO     ? 0001 Generate api project support go modules.
2023/08/17 00:21:38 INFO     ? 0002 Creating API...create   D:\GO_workspace_web\test_beego1\go.modcreate   D:\GO_workspace_web\test_beego1create   D:\GO_workspace_web\test_beego1\confcreate   D:\GO_workspace_web\test_beego1\controllerscreate   D:\GO_workspace_web\test_beego1\testscreate   D:\GO_workspace_web\test_beego1\conf\app.confcreate   D:\GO_workspace_web\test_beego1\modelscreate   D:\GO_workspace_web\test_beego1\routers\create   D:\GO_workspace_web\test_beego1\controllers\object.gocreate   D:\GO_workspace_web\test_beego1\controllers\user.gocreate   D:\GO_workspace_web\test_beego1\tests\default_test.gocreate   D:\GO_workspace_web\test_beego1\routers\router.gocreate   D:\GO_workspace_web\test_beego1\models\object.gocreate   D:\GO_workspace_web\test_beego1\models\user.gocreate   D:\GO_workspace_web\test_beego1\main.go
2023/08/17 00:21:38 SUCCESS  ? 0003 New API successfully created!D:\GO_workspace_web>

與 web 相比,不需要 html、css、js這些前端資源的響應,僅僅是業務邏輯,和數據的響應。是我們需要的典型的API功能!

2、bee new 命令會自動創建beego 的gomod項目。同時會初始化基礎的目錄結構!

D:\GO_workspace_web>bee new test_beego2
2023/08/17 00:24:51.524 [D]  init global config instance failed. If you do not use this, just ignore it.  open conf/app.conf: The system cannot find the path specified.
2023/08/17 00:24:51 INFO     ? 0001 Generate new project support go modules.
2023/08/17 00:24:51 INFO     ? 0002 Creating application...create   D:\GO_workspace_web\test_beego2\go.modcreate   D:\GO_workspace_web\test_beego2\create   D:\GO_workspace_web\test_beego2\conf\create   D:\GO_workspace_web\test_beego2\controllers\create   D:\GO_workspace_web\test_beego2\models\create   D:\GO_workspace_web\test_beego2\routers\create   D:\GO_workspace_web\test_beego2\tests\create   D:\GO_workspace_web\test_beego2\static\create   D:\GO_workspace_web\test_beego2\static\js\create   D:\GO_workspace_web\test_beego2\static\css\create   D:\GO_workspace_web\test_beego2\static\img\create   D:\GO_workspace_web\test_beego2\views\create   D:\GO_workspace_web\test_beego2\conf\app.confcreate   D:\GO_workspace_web\test_beego2\controllers\default.gocreate   D:\GO_workspace_web\test_beego2\views\index.tplcreate   D:\GO_workspace_web\test_beego2\routers\router.gocreate   D:\GO_workspace_web\test_beego2\tests\default_test.gocreate   D:\GO_workspace_web\test_beego2\main.go
2023/08/17 00:24:52 SUCCESS  ? 0003 New application successfully created!D:\GO_workspace_web>

web項目,比 api項目增加 views(html模板)和static(css,image,js)靜態資源相關給目錄。

人必須要成長!

如今一道為尊,萬道相和,幾乎很難破。最可怕的是蒼穹!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39822.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39822.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39822.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用provision創建的arxml文件,導入到第三方工具需要注意哪些方面?

provision是一款基于AP AUTOSAR的ARXML設計工具,可以幫助您快速創建和配置ARXML文件。 如果您想要將provision創建的ARXML文件導入到第三方工具中,您需要注意以下幾個方面: 您需要確認第三方工具支持的AP AUTOSAR版本和provision生成的ARXML…

非計算機科班如何順利轉行計算機領域?

文章目錄 每日一句正能量前言如何規劃才能實現轉計算機?計算機崗位發展前景?現階段轉計算機的建議后記 每日一句正能量 改變思路,改變習慣,改變一種活的方式,往往會創造無限,風景無限! 前言 近年…

Java并發編程(四)線程同步 中 [AQS/Lock]

概述 Java中可以通過加鎖,來保證多個線程訪問某一個公共資源時,資源的訪問安全性。Java提出了兩種方式來加鎖 第一種是我們上文提到的通過關鍵字synchronized加鎖,synchronized底層托管給JVM執行的,并且在java 1.6 以后做了很多…

一百五十二、Kettle——Kettle9.3.0本地連接Hive3.1.2(踩坑,親測有效,附截圖)

一、目的 由于先前使用的kettle8.2版本在Linux上安裝后&#xff0c;創建共享資源庫點擊connect時頁面為空&#xff0c;后來采用如下方法&#xff0c;在/opt/install/data-integration/ui/menubar.xul文件里添加如下代碼 <menuitem id"file-openZiyuanku" label&…

音視頻學習-音視頻基礎

文章目錄 一、 音視頻錄制原理二、音視頻播放原理三、圖像基礎概念1.像素2.分辨率3.位深4.幀率5.碼率6.Stride跨距 四、RGB、YUV1.RGB2.YUV1. 4:4:4格式2. 4:2:2格式3. 4:2:0格式4. 4:2:0數據格式對比 3.RGB和YUV的轉換4.YUV Stride對齊問題 五、視頻的主要概念1.基本概念2.I P…

數據結構:棧和隊列(超詳細)

目錄 ?編輯 棧&#xff1a; 棧的概念及結構&#xff1a; 棧的實現&#xff1a; 隊列&#xff1a; 隊列的概念及結構&#xff1a; 隊列的實現&#xff1a; 擴展知識&#xff1a; 以上就是個人學習線性表的個人見解和學習的解析&#xff0c;歡迎各位大佬在評論區探討&#…

PHP substr()函數詳解,PHP截取字符串。

「作者主頁」&#xff1a;士別三日wyx 「作者簡介」&#xff1a;CSDN top100、阿里云博客專家、華為云享專家、網絡安全領域優質創作者 「推薦專欄」&#xff1a;對網絡安全感興趣的小伙伴可以關注專欄《網絡安全入門到精通》 substr 一、截取字符串二、截取中文字符串三、leng…

clickhouse集群部署

一、集群部署簡介 部署的詳情可以看官網 先部署兩個server,三個keeper[zookeeper] clickhouse之前依賴的存儲是zookeeper,后來改為了keeper,官網給出了原因 所以這就決定了clickhouse有兩種安裝方式&#xff0c;依賴于keeper做存儲或者依賴于zookeeper做存儲 二、zookeeper作…

注冊中心 —— SpringCloud Netflix Eureka

Eureka 簡介 Eureka 是一個基于 REST 的服務發現組件&#xff0c;SpringCloud 將它集成在其子項目 spring-cloud-netflix 中&#xff0c;以實現 SpringCloud 的服務注冊與發現&#xff0c;同時提供了負載均衡、故障轉移等能力&#xff0c;目前 Eureka2.0 已經不再維護&#xf…

基于YOLOv8模型和Caltech數據集的行人檢測系統(PyTorch+Pyside6+YOLOv8模型)

摘要 基于YOLOv8模型和Caltech數據集的行人檢測系統可用于日常生活中檢測與定位行人&#xff0c;利用深度學習算法可實現圖片、視頻、攝像頭等方式的行人目標檢測&#xff0c;另外本系統還支持圖片、視頻等格式的結果可視化與結果導出。本系統采用YOLOv8目標檢測算法訓練數據集…

C#使用FileInfo和DirectoryInfo類來執行文件和文件夾操作

System.IO.FileInfo 和 System.IO.DirectoryInfo 是C#中用于操作文件和文件夾的類&#xff0c;它們提供了許多有用的方法和屬性來管理文件和文件夾。 System.IO.FileInfo&#xff1a; FileInfo 類用于操作單個文件的信息和內容。以下是一些常用的方法和屬性&#xff1a; Exi…

頻繁full gc 調參

Error message from spark is:java.lang.Exception: application_1678793738534_17900289 Driver Disassociated [akka.tcp://sparkDriverClient11.71.243.117:37931] <- [akka.tcp://sparkYarnSQLAM9.10.130.149:38513] disassociated! 日志里頻繁full gc &#xff0c;可以…

Python Opencv實踐 - 圖像金字塔

import cv2 as cv import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR) print(img.shape)#圖像上采樣 #cv.pyrUp(src, dstNone, dstsizeNone, borderTypeNone) #參考資料&#xff1a;https://blo…

js實現將文本轉PDF格式并下載到本地

html里面需要引入jspdf.umd.min.js和FileSaver.js jspdf.umd.min.js&#xff1a;https://www.npmjs.com/package/jspdf FileSaver.js&#xff1a;https://download.csdn.net/download/weixin_45791806/87272893?spm1001.2014.3001.5503 同時項目的根部目錄也需要引入SimHei.tt…

單片機之從C語言基礎到專家編程 - 4 C語言基礎 - 4.7 進制及其轉換

進制是數字的進位計數制&#xff0c;R進制也就是逢R進一。計算機只能識別二進制&#xff0c;也就是逢二進一&#xff0c;例如&#xff0c;11在十進制中為2&#xff0c;在二進制中逢2進1&#xff0c;則為10。以下為進制表示表。 二進制三進制八進制九進制十進制十六進制0000001…

【LeetCode 算法】Find the Losers of the Circular Game 找出轉圈游戲輸家

文章目錄 Find the Losers of the Circular Game 找出轉圈游戲輸家問題描述&#xff1a;分析代碼模擬 Tag Find the Losers of the Circular Game 找出轉圈游戲輸家 問題描述&#xff1a; n 個朋友在玩游戲。這些朋友坐成一個圈&#xff0c;按 順時針方向 從 1 到 n 編號。從…

AD域控制器將輔域控制器角色提升為主域控制器

背景 域控服務器遷移&#xff0c;已將新機器添加為該域的輔域控制器。 主域控制器&#xff1a;test-dc-01 輔域控制器&#xff1a;test-dc-02 需求將主輔域的角色進行互換&#xff0c;test-dc-01更換為輔域&#xff0c;test-dc-02更換為主域。 操作步驟 方法1 命令行修改AD域…

Datawhale Django入門組隊學習Task02

Task02 首先啟動虛擬環境&#xff08;復習一下之前的&#xff09; 先退出conda的&#xff0c; conda deactivate然后cd到我的venv下面 &#xff0c;然后cd 到 scripts&#xff0c;再 activate &#xff08;powershell里面&#xff09; 創建admin管理員 首先cd到項目路徑下&a…

mySQL 視圖 VIEW

簡化版的創建視圖 create view 視圖名 as select col ...coln from 表create view 視圖名&#xff08;依次別名&#xff09; as select col ...coln from 表create view 視圖名 as select col “別名1”&#xff0c;。。。col "別名n" from 表show tab…

Flink的常用算子以及實例

1.map 特性&#xff1a;接收一個數據&#xff0c;經過處理之后&#xff0c;就返回一個數據 1.1. 源碼分析 我們來看看map的源碼 map需要接收一個MapFunction<T,R>的對象&#xff0c;其中泛型T表示傳入的數據類型&#xff0c;R表示經過處理之后輸出的數據類型我們繼續往…