第二课 Beego仿优酷-go环境安装和Beego框架基础
tags:
- Beego
- 慕课网
categories:
- go环境安装
- Beego框架
文章目录
第一节 Beego框架安装
1.1 Beego框架介绍
- 官方网站:https://beego.me/
1.2 Go开发环境搭建
- GOROOT,就是GO的安装路径
- GOPATH,就是工作目录,包含src,pkg,bin文件夹。这里设置为goRoot目录
- 注意:不要把gopath设置成安装目录
- 下载地址:https://studygolang.com/dl 。下载Go的安装文件,mac和win系统直接安装,linux解压
# 测试是否完成
go version
go env
1.3 Beego安装
- Beego安装是典型的go安装包安装,安装命令: go get github.com/astaxie/beego
- bee工具是一个为了协助快速开发beego项目而创建的项目
- go get github.com/beego/bee
- bee可执行文件默认存放在 G O P A T H / b i n 里 面 , 所 以 您 需 要 把 GOPATH/bin里面,所以您需要把 GOPATH/bin里面,所以您需要把GOPATH/bin添加到您的环境变量。直接手动维护
# 手动下载bee https://github.com/beego/bee/releases
# 复制执行文件到gopath的bin目录下,配置环境变量
bee version
# 不用go Mod 才可以版本控制
go env -w GO111MODULE=off
# 手动下载beego 1.9.0版本到目录下gopath下的src\github.com\astaxie\beego
# 进入该目录下执行go install
bee version
- 使用go mod 方式安装beego和bee
# 首先修改环境变量 可以右键电脑创建键值对
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
go env
# 这里就可以进行版本管理了
go get -u github.com/astaxie/beego
go get -u github.com/beego/bee
# bin目录,配置环境变量 然后到src下
bee new myproject
cd myproject
# 这里注意多了个.mod的文件 就是用来管理版本的
go mod init myproject
# 运行项目
bee run
1.4 bee命令的基本使用
- bee new 创建一个新的beego项目
- bee api 如果项目只是提供api服务的话可以用这个, 它不会创建static和views目录
- bee run 运行beego用来调试
- bee pack 上线时用来打包beego文件的 打包完的文件在bin. 注意: bee pack -be GOOS=linux (mac下打包的项目,liunx下不能直接用)
- 测试一下
bee new demo
# 进入到demo目录下
cd src/demo
# 如果运行出错看下目录对不对呀
bee run
# 访问http://localhost:8080/
第二节 Beego框架路由和配置
2.1 hello world基本路由
- controllers\default.go 下新建一个函数。
// 浏览器中输出helloword
func (c *MainController) GetHello(){
var(
title string
)
title = "hello world"
c.Ctx.WriteString(title)
}
- routers\router.go 下新建一个路由。
// "get:GetHello" 如果不加这个参数,默认访问get函数
beego.Router("/hello", &controllers.MainController{
}, "get:GetHello")
2.2 注解路由
- 在文件夹controllers中新建一个demo.go的文件。
package controllers
import "github.com/astaxie/beego"
type DemoController struct {
beego.Controller
}
// @router /demo/hello [GET]
func (this *DemoController) GetHello() {
var (
title string
)
title = "hello world!"
this.Ctx.WriteString(title)
}
- routers\router.go添加注解路由。
beego.Include(&controllers.DemoController{
})
3. 重新运行一下。访问一下http://127.0.0.1:8080/demo/hello
4. Beego的MVC和其它语言的mvc开发模式是一样的,对应文件夹:controllers、models、views
2.3 Beego过滤器的实现
- 过滤器有哪些作用?
- 安全验证,例如:IP屏蔽,token验证,访问地址屏蔽
- beego.InsertFilter(pattern string, postion int, filter FilterFunc, skip…bool)
- 实现一个过滤器。访问之前http://127.0.0.1:8080/demo/hello ,会自动输出跳转函数中的输出。
package routers
import (
"demo/controllers"
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
)
func init() {
beego.Router("/", &controllers.MainController{
})
beego.Router("/hello", &controllers.MainController{
}, "get:GetHello")
beego.Include(&controllers.DemoController{
})
var FilterDemo = func(ctx *context.Context) {
var (
title string
)
title = "禁止访问"
ctx.WriteString(title)
}
// 如果有/demo/*就禁止, 在BeforeRouter路由之前执行FilerDemo函数
beego.InsertFilter("/demo/*", beego.BeforeRouter, FilterDemo)
}
2.4 Beego参数配置
- 参数配置在demo/conf/app.conf
- 不同环境的配置用[]区分
appname = demo
httpport = 8080
runmode = dev