第8课:Go框架beego安装使用

这里写出windows安装流程,linux类似
无非就是先下载beego框架,然后用命令创建工程,打开工程进行代码编写,测试代码这样的流程

首先安装git,git是一个分布式的版本控制工具,主要用它从github把beego的源码拉下来
http://git-scm.com/download 可直接官方下载

打开git bash
运行
go get github.com/astaxie/beego
go get github.com/beego/bee
第一行是框架源码 第二行是工具,注意验证下对应网址是否正确,有时候项目地址会换
安装完成之后会在代码目录的bin中有一个bee.exe
如果用命令行,找不到bee命令,可以把这个文件转移到go安装目录的bin目录下

#bee new 项目名 
用此命令创建项目

LiteIDE的"文件"中找到"打开目录",找到刚才生成的工程文件夹,点击"选择文件夹",加载了整个工程
BR编译运行
浏览器打开http://127.0.0.1:8080/查看是否安装成功

查看代码目录:
主文件main.go
主要配置文件conf/app.conf
默认的控制器controllers/default.go
默认的视图模板views/index.tpl

编码:
我们现在来实现一个简单的web程序,显示简单的字符串
1.打开controllers/defaults.go文件
加入
func (main *MainController) HelloGodeye() {
	main.Data["Website"] = "http://www.godeye.org"
	main.Data["Email"] = "godeye@example.com"
	main.Data["EmailName"] = "Godeye"
	main.TplNames = "godeye.tpl"
}
这一步表示我们增加了一个新功能,里面可以任意加处理逻辑
main.TplNames = "godeye.tpl"表示模板文件
然后在views目录中创建这个模板文件
<header class="hero-unit">
    <div class="container">
        <div class="row">
            <div class="hero-text">
                <h1>Welcome to Godeye</h1>
                <h2>This is My Test Version</h2>
                <p>{{.Website}} {{.Email}} {{.EmailName}}</p>
            </div>
        </div>
    </div>
</header>
功能方法与模板都有了,接下来就是设置路由,怎么通过一个url链接访问到HelloGodeye方法呢?
打开routers/router.go
在func init()中加入
beego.Router("/godeye", &controllers.MainController{}, "get:HelloGodeye")

编译运行,然后打开浏览器
输入http://127.0.0.1:8080/godeye
就可以看到页面了

当然了,实际情况肯定要复杂很多,比如我们一般url请求都需要传参数,如果把参数传递到控制层的HelloGodeye方法?HelloGodeye又如何接收这个参数呢?
先说第一步,如果传递:
修改路由文件routers/router.go
在func init()中
beego.Router("/godeye/:id([0-9]+)", &controllers.MainController{}, "get:HelloGodeye")
这样,就可以用http://127.0.0.1:8080/godeye/12 来传递一个名为id的参数,值为12
再说接收参数:
HelloGodeye()方法中在加载模板之前加入
main.Data["Id"] = main.Ctx.Input.Param(":id")
获取id参数
之后,在godeye.tpl 将{{.Id}}添加到现有的模板变量的下面,实现Id值在模板的显示

如果要限定数据传输方式,比如get或者post,还是修改路由文件
在router.go中,将/godeye路由做如下改变:
beego.Router("/godeye/:id([0-9]+)", &controllers.MainController{}, "get,post:Get")
这样可以允许GET或POST请求