Beego框架

1、安装sqlite3

1、Go 第三方包 go-sqlite3 参考:https://my.oschina.net/Obahua/blog/129689
Mac OS X 通过 Homebrewn 安装:

brew install pkgconfig
brew install sqlite3

go get github.com/astaxie/beego
Ubuntu下的安装总是简单到爆,执行以下命令即可:

sudo apt-get install pkg-config
sudo apt-get install sqlite3  
sudo apt-get install libsqlite3-dev

2、 安装Beego

Beego github主页:https://github.com/astaxie/beego
博客项目设计:https://github.com/Unknwon/go-web-foundation/blob/v1/lectures/lecture1/lecture1.md
Beego中文文档:https://beego.me/docs/intro/
Beego安装方法:https://beego.me/quickstart && https://beego.me/docs/install/

go get github.com/astaxie/beego

安装 Bee 的开发工具:

go get -u github.com/beego/bee

常见问题:

git 没有安装,请自行安装不同平台的 git,如何安装请自行搜索。
git https 无法获取,请配置本地的 git,关闭 https 验证:

git config --global http.sslVerify false

无法上网怎么安装 beego,目前没有好的办法,接下来我们会整理一个全包下载,每次发布正式版本都会提供这个全包下载,包含依赖包。

为了更加方便的操作,请将 $GOPATH/bin 加入到你的 $PATH 变量中。请确保在此之前您已经添加了 $GOPATH 变量。

如果您还没添加 $GOPATH 变量

$ echo 'export GOPATH="$HOME/go"' >> ~/.profile # 或者 ~/.zshrc, ~/.cshrc, 您所使用的sh对应的配置文件

如果您已经添加了 $GOPATH 变量

$ echo 'export PATH="$GOPATH/bin:$PATH"' >> ~/.profile # 或者 ~/.zshrc, ~/.cshrc, 您所使用的sh对应的配置文件
$ exec $SHELL

想要快速建立一个应用来检测安装?

$ cd $GOPATH/src
$ bee new hello
$ cd hello
$ bee run hello

3、Beego 运行hello world

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

type HomeController struct {
    beego.Controller
}

func (this *HomeController) Get(){
    this.Ctx.WriteString("hello world")
}

func main()  {
    beego.Router("/",&HomeController{})
    beego.Run()
}
$go run test.go
2018/07/18 10:59:09.731 [I] http server Running on http://:8080

浏览器访问:http://localhost:8080/ 返回: hello world

2018/07/18 10:59:32.571 [D] ::1 - - [18/Jul/2018 10:59:32] "GET / HTTP/1.1 200 0" 0.002190  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36

那么上面的代码到底做了些什么呢?

  1. 首先我们导入了包 github.com/astaxie/beego。我们知道 Go 语言里面被导入的包会按照深度优先的顺序去执行导入包的初始化(变量和 init 函数,更多详情),beego 包中会初始化一个 BeeAPP 的应用和一些参数。
  2. 定义 Controller,这里我们定义了一个 struct 为 MainController,充分利用了 Go 语言的组合的概念,匿名包含了 beego.Controller,这样我们的 MainController 就拥有了 beego.Controller 的所有方法。
  3. 定义 RESTful 方法,通过匿名组合之后,其实目前的 MainController 已经拥有了 Get、Post、Delete、Put 等方法,这些方法是分别用来对应用户请求的 Method 函数,如果用户发起的是 POST 请求,那么就执行 Post 函数。所以这里我们定义了 MainController 的 Get 方法用来重写继承的 Get 函数,这样当用户发起 GET 请求的时候就会执行该函数。
  4. 定义 main 函数,所有的 Go 应用程序和 C 语言一样都是 main 函数作为入口,所以我们这里定义了我们应用的入口。
  5. Router 注册路由,路由就是告诉 beego,当用户来请求的时候,该如何去调用相应的 Controller,这里我们注册了请求 / 的时候,请求到 MainController。这里我们需要知道,Router 函数的两个参数函数,第一个是路径,第二个是 Controller 的指针。
  6. Run 应用,最后一步就是把在步骤 1 中初始化的 BeeApp 开启起来,其实就是内部监听了 8080 端口:Go 默认情况会监听你本机所有的 IP 上面的 8080 端口。
    停止服务的话,请按 Ctrl+c。

3、Bee工具创建项目并运行

which bee
/Users/daixuan/qbox/go/bin/bee
bee new myapp
bee run myapp
➜  go bee run myapp
______
| ___ \
| |_/ /  ___   ___
| ___ \ / _ \ / _ \
| |_/ /|  __/|  __/
\____/  \___| \___| v1.10.0
2018/07/29 17:08:23 INFO     ▶ 0001 Using 'myapp' as 'appname'
2018/07/29 17:08:23 INFO     ▶ 0002 Initializing watcher...
2018/07/29 17:08:25 SUCCESS  ▶ 0003 Built Successfully!
2018/07/29 17:08:25 INFO     ▶ 0004 Restarting 'myapp'...
2018/07/29 17:08:25 SUCCESS  ▶ 0005 './myapp' is running...
2018/07/29 17:08:25.166 [I] [asm_amd64.s:2337] http server Running on http://:8080

访问:http://localhost:8080/
Beego框架

转载于:https://blog.51cto.com/daixuan/2146241

### Beego框架使用指南 #### 1. 环境准备 为了使用Beego框架,首先需要安装Go语言环境。确保已正确设置`GOPATH`和`GOROOT`变量,并通过命令行工具验证版本号。 ```bash go version ``` 如果尚未安装Beego框架,则可以通过以下命令完成安装: ```bash go get github.com/beego/beego/v2/server/web ``` 此操作会下载并安装最新版的Beego框架到本地环境中[^4]。 --- #### 2. 创建首个Beego应用程序 按照官方推荐的方式,在指定的工作目录中创建一个新的文件名为`main.go`的源码文件,并向其中添加如下代码片段: ```go package main import "github.com/beego/beego/v2/server/web" func main() { web.Run() } ``` 运行该程序之前,请确认端口未被占用,默认监听地址为`localhost:8080`。启动服务器后访问浏览器中的相应URL即可看到默认页面显示效果。 --- #### 3. 路由定义与控制器实现 Beego采用经典的MVC模式来构建应用逻辑结构。下面展示如何自定义路由规则以及关联对应的处理函数(即Controller部分)。假设我们希望新增一条路径用于返回简单的JSON数据响应给客户端请求者。 ##### 步骤说明: - **注册新Route** 修改原有的入口脚本内容如下所示: ```go package main import ( "github.com/beego/beego/v2/server/web" ) type MainController struct { web.Controller } // Get method implementation. func (this *MainController) Get() { this.Ctx.WriteString("Hello, world!") } func init() { web.Router("/hello", &MainController{}) } func main() { web.Run(":9090") // 自定义端口号为9090 } ``` 在此基础上实现了GET方法调用时输出字符串消息的功能;同时调整了HTTP服务绑定的目标TCP端点位置以便区分测试用途[^1]。 --- #### 4. 配置管理机制 除了基本功能外,Beego还内置了一套灵活易用的应用参数解析方案——AppConfig模块。它允许开发者轻松加载外部配置文件或者直接以内嵌形式声明全局常量值供整个项目范围共享读取权限。 示例演示从ini格式化文档提取数据库连接串信息的过程: ```ini [database] dsn=mysql://root:@tcp(127.0.0.1:3306)/testdb?charset=utf8mb4&parseTime=True&loc=Local ``` 随后在初始化阶段加载这些预设项: ```go cfg := web.AppConfig.DefaultString("database::dsn", "") fmt.Println(cfg) ``` 这样就可以安全可靠地获取所需的DSN表达式作为后续ORM层交互的基础依赖条件之一[^1]。 --- #### 5. 日志记录能力概述 对于生产环境下部署的服务而言,完善的错误追踪体系显得尤为重要。幸运的是,借助于Beego自带的日志子系统能够极大地简化这一过程复杂度。只需简单几行额外编码便可开启调试级别以上的全部事件跟踪行为并向标准输出流打印相关信息条目。 启用方式举例: ```go web.SetLogger(web.BeeLogger{Level: web.LOG_DEBUG}) log.Debug("This is a debug message.") ``` 以上代码段展示了怎样切换至更详细的诊断模式并且发送单次试验性的日志录入动作[^1]。 --- ### 总结 综上所述,Beego不仅具备传统意义上的Web开发所需各项基础组件支持,而且围绕着现代软件工程理念进行了诸多优化改进措施,从而使得广大Golang爱好者能够在短时间内掌握核心技术要点并投入到实际业务场景当中去实践探索更多可能性空间[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值