beego框架学习
一、安装与使用
go get github.com/astaxie/beego
package main import "github.com/astaxie/beego" func main() { beego.Run() }
二、beego中的组件
三、Beego执行流程
四、beego目录结构
conf配置文件
controllers控制台
main入口函数
model业务逻辑
static静态文件
view视图
五、bee工具安装
go get github.com/beego/bee
快速构建beego项目 创建web项目 bee new 项目的名字 创建api项目 bee api 项目的名字
启动文件在GOPATH的bin目录下
bee.exe new projectname 项目创建GOPATH的src下面
六、bee路由配置
beego.Router("/", &controllers.MainController{})
Router方法设置url和处理该url的controller
程序启动时路由配置加载好,保存在map中
请求处理时,通过请求的url进行查找对应的controller,把处理路由到controller进行执行
开发人员只需要编写自己的controller就可以了
七、controller代码分析
用户的controller嵌套bee.Controller, 继承bee.Controller所有属性和方法
Controller默认使用restful的风格,Get请求对应Get方法
请求处理时,通过请求的url进行查找对应的controller,把处理路由到controller进行执行
通过业务逻辑处理之后,把数据赋值给Controller.Data这个map即可
八、model层实现业务逻辑
九、views层实现模板的渲染
Beego模板默认支持 .tpl和.html两种后缀
beego.AddTemplateExt增加新的模板后缀
Beego模板用的就是Go官网自带的模板
十、静态文件处理
Beego默认使用static目录作为静态文件目录
beego. SetStaticPath增加新的静态文件目录
十一、配置文件使用
beego 默认会解析conf/app.conf
appname = beepkg httpaddr = '127.0.0.1' //设置外网访问 httpport = 9090 //访问端口 runmode = 'dev' autorender = false //模板是否自动渲染 recoverpanic = false //是否捕获panic viewpath = 'myview' //视图的路径
十二、配置文件使用
自定义配置
自定义配置读取
不同级别的配置读取
beego.AppConfig.String(“dev::httpport”)
十三、beego路由详解
固定路由
正则路由
this.Ctx.Input.Param(":id") this.Ctx.Input.Param(":username")
自定义方法
十四、获取用户提交的参数
- Controller中的方法获取(get和post数据)
- 直接通过Ctx.Input.RequestBody获取原始的数据
- 配置文件里设置 copyrequestbody = true
十五、日志使用
- beego.SetLogger("file", `{"filename":"logs/test.log"}`)
- beego.BeeLogger.DelLogger("console")
- beego.SetLevel(beego.LevelInformational)
- beego.SetLogFuncCall(true) 设置打印行号