Beego框架及其工具简介

安装

安装beego 及其 工具包bee

go get -u github.com/astaxie/beego

go get -u github.com/beego/bee

安装后bee.exe出现在GOPATH的bin目录中,如果该bin目录再path中,则可以通过bee version 查看到安装情况:

项目结构

  • cache
    支持四类:文件、内存、memcache、redis

  • config
    支持:ini、json、xml、yaml

  • context
    封装request、response

  • httplibs
    模拟http请求,支持get、post、put等,支持超时设置、文件上穿等。

  • logs
    多种输出引擎,异步输出。

bee工具应用

bee new:创建新项目
bee run: 自动编译部署
bee generate:自动生成代码

创建项目:

启动项目:

生成的目录如下:

常规目录结构,不再赘述。

项目基本流程

main作为项目入口只有一个函数并执行了beego.run()

package main

import (
    _ "learnBee/routers"
    "github.com/astaxie/beego"
)

func main() {
    beego.Run()
}
import (
    _ "learnBee/routers"

前面的下划线表示只执行router的init函数。

func init() {
    beego.Router("/", &controllers.MainController{})
}

init 函数中的两个参数分别指定url和对应的controller函数

package controllers

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

type MainController struct {
    beego.Controller
}

func (c *MainController) Get() {
    c.Data["Website"] = "beego.me"
    c.Data["Email"] = "[email protected]"
    c.TplName = "index.tpl"
}

函数中传递了参数并制定了所渲染的模板:index.tpl
参数传递如下:

另外,通过c.GetString(key:**)来获取url传递的参数

数据交互:

通过generate自动生产代码

首先链接数据库中的某个scheme

bee generate scaffold people -fields ="id:int, age:int, name:string" -driver=mysql -conn="root:@tcp(127.0.0.1:3306)/learn_go"

后续是一些选项

结束后相关的mvc文件就被自动创建了。

后面我们修改main函数,添加一些依赖包并配置数据库

import (
    _ "learnBee/routers"
    "github.com/astaxie/beego"
    "github.com/astaxie/beego/orm"
    _"github.com/go-sql-driver/mysql"
)

func main() {
    orm.RegisterDataBase("default","mysql","root:<密码>@tcp(127.0.0.1:3306)/learn_go")
    beego.Run()
}

在路由中重新指定controller

func init() {
    //beego.Router("/", &controllers.MainController{})
    beego.Include(&controllers.PeopleController{})
}

url的配置,竟然是注释模式。。

iris框架

最后附一个iris框架的简介链接:
https://www.jianshu.com/p/1577a05bb46f

你可能感兴趣的:(Beego框架及其工具简介)