Go framework-Beego

这篇具有很好参考价值的文章主要介绍了Go framework-Beego。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、Beego

1、创建Beego项目

1.1、命令行方式创建项目

1.2、使用bee工具

1、bee api,创建API应用

2、bee new 命令会自动创建beego 的go mod项目。

2、Admin管理后台


一、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_beego

D:\GO_workspace_web>cd test_beego

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

D:\GO_workspace_web\test_beego>

下载并安装beego/v2

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

D:\GO_workspace_web\test_beego>

下面使用GoLand软件打开新建的项目

编写main.go

package main

import "github.com/beego/beego/v2/server/web"

func main() {
	web.Run()
}

启动项目

Go framework-Beego,golang,beego,开发语言

 测试:http://localhost:8080/

Go framework-Beego,golang,beego,开发语言

 看到上面页面说明beego项目启动成功

1.2、使用bee工具

安装 Bee 工具

go get -u github.com/beego/bee/v2@latest

D:\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.1

D:\GO_workspace_web\test_beego>

在bee命令安装:$GOPATH/bin中,保证$GOPATH/bin位于系统环境变量path中

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

Go framework-Beego,golang,beego,开发语言

For Go 1.18 and newer Go versions run:

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

And then:

bee version

D:\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 2023

D:\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.mod
        create   D:\GO_workspace_web\test_beego1
        create   D:\GO_workspace_web\test_beego1\conf
        create   D:\GO_workspace_web\test_beego1\controllers
        create   D:\GO_workspace_web\test_beego1\tests
        create   D:\GO_workspace_web\test_beego1\conf\app.conf
        create   D:\GO_workspace_web\test_beego1\models
        create   D:\GO_workspace_web\test_beego1\routers\
        create   D:\GO_workspace_web\test_beego1\controllers\object.go
        create   D:\GO_workspace_web\test_beego1\controllers\user.go
        create   D:\GO_workspace_web\test_beego1\tests\default_test.go
        create   D:\GO_workspace_web\test_beego1\routers\router.go
        create   D:\GO_workspace_web\test_beego1\models\object.go
        create   D:\GO_workspace_web\test_beego1\models\user.go
        create   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 的go mod项目

同时会初始化基础的目录结构!

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.mod
        create   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.conf
        create   D:\GO_workspace_web\test_beego2\controllers\default.go
        create   D:\GO_workspace_web\test_beego2\views\index.tpl
        create   D:\GO_workspace_web\test_beego2\routers\router.go
        create   D:\GO_workspace_web\test_beego2\tests\default_test.go
        create   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)静态资源相关给目录。

运行应用前,保证全部的包被安装:

D:\GO_workspace_web\test_beego2>go mod tidy
go: downloading github.com/smartystreets/goconvey v1.6.4
go: downloading github.com/elazarl/go-bindata-assetfs v1.0.1
go: downloading github.com/stretchr/testify v1.8.1
go: downloading github.com/jtolds/gls v4.20.0+incompatible
go: downloading github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d
go: downloading github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1
go: downloading github.com/google/go-cmp v0.5.9
go: downloading gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go: downloading github.com/kr/pretty v0.3.1
go: downloading github.com/rogpeppe/go-internal v1.10.0
go: finding module for package github.com/kr/text
go: downloading github.com/kr/text v0.2.0
go: found github.com/kr/text in github.com/kr/text v0.2.0

bee run 运行应用

D:\GO_workspace_web\test_beego2>bee run
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v2.1.0
2023/08/17 23:53:12 WARN     ▶ 0001 Running application outside of GOPATH
2023/08/17 23:53:12 INFO     ▶ 0002 Using 'test_beego2' as 'appname'
2023/08/17 23:53:12 INFO     ▶ 0003 Initializing watcher...
test_beego2/controllers
test_beego2/routers
test_beego2
2023/08/17 23:53:18 SUCCESS  ▶ 0004 Built Successfully!
2023/08/17 23:53:18 INFO     ▶ 0005 Restarting 'test_beego2.exe'...
2023/08/17 23:53:18 SUCCESS  ▶ 0006 './test_beego2.exe' is running...
2023/08/17 23:53:19.472 [I] [server.go:281]  http server Running on http://:8080

bee run 命令会利用 fsnotify 监控文件系统,若文件改动时,可以实时重新编译运行。

Go framework-Beego,golang,beego,开发语言

2、Admin管理后台

Beego 内置了管理后台,用于监视和统计应用信息,默认关闭。通过配置控制:

修改main.go文件

package main

import (
	beego "github.com/beego/beego/v2/server/web"
	_ "test_beego2/routers"
)

func main() {
	// 是否开启Admin
	beego.BConfig.Listen.EnableAdmin = true
	// Admin监听的地址和端口
	beego.BConfig.Listen.AdminAddr = "localhost"
	beego.BConfig.Listen.AdminPort = 8088
	beego.Run()
}

访问:http://localhost:8088/

Go framework-Beego,golang,beego,开发语言

支持:
Requests statistics, 请求统计信息
性能分析

  • lookup goroutine,goroutine 信息
  • lookup heap,堆栈信息
  • lookup threadcreate,线程创建信息
  • lookup block,阻塞信息
  • get cpuprof,CPU的pprof
  • get memprof,Memory的pprof
  • gc summary,GC 概要

健康检查
任务
配置状态

  • configs, 配置
  • routers, 路由
  • filters, 过滤器

Web framework-Gin

人必须要成长!

如今一道为尊,万道相和,几乎很难破。最可怕的是苍穹!文章来源地址https://www.toymoban.com/news/detail-659739.html

到了这里,关于Go framework-Beego的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Go framework-go-zero

            Go天然适配云原生,而云原生时代已经到来,各个应用组件基础设施等都应该积极的去拥抱云原生。 不要让框架束缚开发。         go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。 go

    2024年02月10日
    浏览(36)
  • Go framework-GORM

    目录 一、GORM 1、GORM连接数据库 2、单表的增删改查 3、结构体名和表名的映射规则 4、gorm.Model匿名字段 5、结构体标签gorm 6、多表操作 7、常用方法 8、支持原生SQL 9、Gin整合GORM         ORM:即Object-Relational Mapping,它的作用是在 关系型数据库和对象之间作一个映射 ,这样

    2024年02月11日
    浏览(33)
  • 【Golang】go条件编译

    交叉编译只是为了能在一个平台上编译出其他平台可运行的程序,Go 作为一个跨平台的语言,它提供的类库势必也是跨平台的,比如说程序的系统调用相关的功能,能根据所处环境选择对应的源码进行编译。让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,

    2024年02月11日
    浏览(58)
  • 【Golang】go交叉编译

    交叉编译是用来在一个平台上生成另一个平台的可执行程序 。Go 命令集是原生支持交叉编译的。 Mac下编译:Linux 或 Windows 的可执行程序 Linux下编译:Mac 或 Windows的可执行程序 Windows下编译:Mac 或 Linux的可执行程序 需要写一个批处理程序,在里面去设置,因为windows 下的 ter

    2024年02月10日
    浏览(43)
  • Golang:Go语言结构

    在我们开始学习 Go 编程语言的基础构建模块前,让我们先来了解 Go 语言最简单程序的结构。 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 表达式 注释 接下来让我们来看下简单的代码,该代码输出了\\\"Hello World!\\\": 让我们来看下以上程序的各个部分: 第一

    2024年02月10日
    浏览(57)
  • 【Golang】Golang进阶系列教程--Go 语言数组和切片的区别

    在 Go 语言中,数组和切片看起来很像,但其实它们又有很多的不同之处,这篇文章就来说说它们到底有哪些不同。 数组和切片是两个常用的数据结构。它们都可以用于存储一组相同类型的元素,但在底层实现和使用方式上存在一些重要的区别。 Go 中数组的长度是不可改变的

    2024年02月15日
    浏览(56)
  • 【Golang】Golang进阶系列教程--Go 语言切片是如何扩容的?

    在 Go 语言中,有一个很常用的数据结构,那就是切片(Slice)。 切片是一个拥有相同类型元素的可变长度的序列,它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。 切片是一种引用类型,它有三个属性:指针,长度和容量。 底层源码定义如下: 指针: 指向

    2024年02月14日
    浏览(62)
  • 【Golang】Golang进阶系列教程--Go 语言 map 如何顺序读取?

    Go 语言中的 map 是一种非常强大的数据结构,它允许我们快速地存储和检索键值对。 然而,当我们遍历 map 时,会有一个有趣的现象,那就是输出的键值对顺序是不确定的。 先看一段代码示例: 当我们多执行几次这段代码时,就会发现,输出的顺序是不同的。 首先,Go 语言

    2024年02月14日
    浏览(65)
  • Golang - go build打包文件

    Go编译打包文件 1、简单打包 程序 main1.go: 打包: # 在linux服务上执行下面的3个命令 执行: 2、打包时为程序中的变量设置值 程序 main2.go : 打包:打包方式和上面一样,这里只介绍linux下的打包。 # 在linux服务上执行下面的命令 执行: 3、打包时指定名称 执行: go build的时

    2024年02月09日
    浏览(39)
  • golang 中 go func() {} 理解

    在Golang 中,go func() {} 表示创建一个新的 Goroutine(轻量级线程),用于异步执行函数。 具体来说,go func() {} 创建了一个匿名函数(即没有函数名的函数),并在其前面加上 go,以表示该函数应该在一个新的 Goroutine 中异步执行。因此,当程序执行到该语句时,它会立即

    2024年02月15日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包