Go framework-Beego

news2025/1/23 7:54:02

一、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()
}

启动项目

 测试:http://localhost:8080/

 看到上面页面说明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

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 的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.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)静态资源相关给目录。

人必须要成长!

如今一道为尊,万道相和,几乎很难破。最可怕的是苍穹!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/887288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iTOP-2K1000开发板固态硬盘分区

固态硬盘分区的目的是把固态硬盘分成一个分区并格式化为 ext2,在 linux 系统下,分区主要使用的命令是 fdisk 命令。接下来我们一起看下分区操作。 U 盘启动成功以后进到文件系统,输入命令 fdisk -l 查看当前开发板的固态硬盘的节点&#xff…

易服客工作室:UberMenu WordPress插件 - 网站超级菜单插件

UberMenu WordPress插件是一个用户友好、高度可定制、响应迅速的 Mega Menu WordPress 插件。它与 WordPress 3 菜单系统一起开箱即用,易于上手,但功能强大,足以创建高度定制化和创意的大型菜单配置。 网址: UberMenu WordPress插件 - 网站超…

RS485、MODBUS通信协议详解

前言 MODBUS协议是Modicon公司发表的一种串行通信协议,属于OSI模型中应用层的协议,现广泛应用于工业控制领域,它的主要特点是免费开放、支持多种电气接口(如RS-232、RS-485),传输介质可以是双绞线、光纤、无…

java-JVM内存区域JVM运行时内存

一. JVM 内存区域 JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存。线程私有数据区域生命周期与线程相同, 依赖用户线程的启动/结束 而 创建/销毁(在 HotspotVM 内, 每个线程都与操作系统的本地线程直接映…

Beats:安装及配置 Metricbeat (一)- 8.x

在我之前的文章: Beats:Beats 入门教程 (一)Beats:Beats 入门教程 (二) 我详细描述了如何在 Elastic Stack 7.x 安装及配置 Beats。在那里的安装,它通常不带有安全及 Elasticsearc…

机器视觉基础实验-Panorama Stitching

文章目录 1、实验内容2、实验设计(略)3、实验环境及实验数据集四、实验过程及结果4.1 Harris角点检测器寻找关键点4.2 构建描述算子来描述图中的每个关键点,比较两幅图像的两组描述子,并进行匹配。4.3 根据一组匹配关键点&#xf…

Nginx的安装及负载均衡搭建

一.Nginx的安装 1)准备安装环境 yum install -y make gcc gcc-c pcre-devel pcre zlib zlib-devel openssl openssl-develPERE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。 nginx的http模块使用pcre来解…

每天一练:SpringBoot连接mq

目录 每天一练:Springboot连接rabbitmq 每天一练:Springboot连接rabbitmq 目录一、部署Rabbitmq?二、增加maven依赖三、连接RabbitMq四、发布和订阅消息总结 一、部署Rabbitmq? 这里rabbitmq采用docker安装部署。 拉取docker镜像 [root192 ~]# docker…

349. 两个数组的交集 题解

题目描述:349. 两个数组的交集 - 力扣(LeetCode) 给定两个数组 nums1 和 nums2 ,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 方法一: 解题思路: 我们可以…

《零基础7天入门Arduino物联网-04》电路基础知识上

配套视频课程:《零基础学Arduino物联网,入门到进阶》 配套课件资料获取:微联实验室 配套学习套件购买:淘宝搜索店铺【微联实验室】 直流电与交流电 直流电(DC) 是指电流的方向始终保持不变的电流。这意味着…

Hyperledger Fabric的使用及开发

Hyperledger Fabric是Linux基金会发起的一种跨行业的区块链技术,目前在多家大型公司有着应用,这里就不多做HF本身的介绍了,有兴趣可关注其官网。 1. 准备工作: 开始前需要一定的准备工作,安装各类中间件:…

JVM——HotSpot的算法细节实现

一、根节点枚举 固定可作为GC Roots的节点主要在全局性的引用(如常量或类静态属性)与执行上下文(如栈帧中的本地变量表)中,尽管目标明确,但查找要做到高效很难。现在java应用越来越庞大,光方法区…

啥是虚拟机

虚拟机这个概念第一次听到还是在我大二学计算机网络做实验的时候听说过,第二次算比较熟练地使用应该是在大三下学期的大数据课程,做实验的时候也算是学到了许多Linux的命令。但到底什么是虚拟机,我还是搞不清楚的,所以&#xff0c…

【八股】2023秋招八股复习笔记1(CSBase+部分WXG题)

文章目录 MYSQL & redis网络 & 系统安全 & C招聘要求(x3)部分面经和题目(WXG-后端)(x5) MYSQL & redis redis:memcached/mysql,线程模型(6.0多线程&…

css实现div内文字自动滚动

网上找了好久&#xff0c;终于找到了个能实现的&#xff0c;把它整理一下。 需求&#xff1a;表格内字体过长实现自动滚动 实现思路如下&#xff1a; html&#xff1a; <div class"item-column" style"background: rgb(12, 87, 154); width: 18%; height: 6…

Msvcr120.dll文件缺失怎么办.msvcr120.dll错误的解决方法

在使用某些软件时你是否有遇到过Msvcr120.dll文件缺失&#xff0c;msvcr120.dll是 Microsoft Visual C Redistributable 中的一个重要文件&#xff0c;所以它的缺失会导致应用程序无法正常使用或崩溃。那么出现这种情况应该怎么办呢&#xff1f;以下教大家几种解决方法。 一.导…

线性代数(四) 特征值相似矩阵

前言 前面主要讲述的是方程组和矩阵的关系&#xff0c;现在了解下矩阵和矩阵的关系 方阵的特征值与特征向量 假设A为n阶方阵&#xff0c;对于一个数 λ \lambda λ 若存在&#xff1a;非零列向量 α \alpha α&#xff0c;使得&#xff1a; A α ⃗ λ α ⃗ A\vec{\alp…

轮腿机器人的PID控制

1 PID介绍 PID&#xff08;Proportional Integral Derivative&#xff09;控制系统。其实质是根据输入的偏差值&#xff0c;按比例、积分、微分的函数关系进行运算&#xff0c;运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法&#xff0c;实际运行经…

在CentOS 7上使用kubeadm部署Kubernetes集群

如有错误&#xff0c;敬请谅解&#xff01; 此文章仅为本人学习笔记&#xff0c;仅供参考&#xff0c;如有冒犯&#xff0c;请联系作者删除&#xff01;&#xff01; 前言&#xff1a; Kubernetes是一个开源的容器编排平台&#xff0c;用于管理和自动化部署容器化的应用程序。…

C#8.0本质论第三章--更多数据类型

C#8.0本质论第三章–更多数据类型 3.1类型的划分 一个类型要么是值类型&#xff0c;要么是引用类型。区别在于拷贝方式&#xff1a;值类型数据总是拷贝值&#xff1b;引用类型的数据总是拷贝引用。 3.1.1值类型 3.1.2引用类型 引用类型的变量存储对数据存储位置的引用。 3.…