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
那么上面的代码到底做了些什么呢?
- 首先我们导入了包 github.com/astaxie/beego。我们知道 Go 语言里面被导入的包会按照深度优先的顺序去执行导入包的初始化(变量和 init 函数,更多详情),beego 包中会初始化一个 BeeAPP 的应用和一些参数。
- 定义 Controller,这里我们定义了一个 struct 为 MainController,充分利用了 Go 语言的组合的概念,匿名包含了 beego.Controller,这样我们的 MainController 就拥有了 beego.Controller 的所有方法。
- 定义 RESTful 方法,通过匿名组合之后,其实目前的 MainController 已经拥有了 Get、Post、Delete、Put 等方法,这些方法是分别用来对应用户请求的 Method 函数,如果用户发起的是 POST 请求,那么就执行 Post 函数。所以这里我们定义了 MainController 的 Get 方法用来重写继承的 Get 函数,这样当用户发起 GET 请求的时候就会执行该函数。
- 定义 main 函数,所有的 Go 应用程序和 C 语言一样都是 main 函数作为入口,所以我们这里定义了我们应用的入口。
- Router 注册路由,路由就是告诉 beego,当用户来请求的时候,该如何去调用相应的 Controller,这里我们注册了请求 / 的时候,请求到 MainController。这里我们需要知道,Router 函数的两个参数函数,第一个是路径,第二个是 Controller 的指针。
- 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