beego 基本操作及配置信息

在线文档
https://beego.me/docs/install/bee.md

beego使用Go安装包的形式,需要提前安装好go环境

go get github.com/beego/bee

beego 升级 go 方式升级
Go 升级,通过该方式用户可以升级 beego 框架,强烈推荐该方式:

go get -u github.com/astaxie/beego

安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面
所以您需要把 $GOPATH/bin 添加到您的环境变量中,之前已经配置Go环境

# cat .bash_profile
export GOPATH=/Users/victor/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOBIN

bee常用命令详解

bee command 项目名
new     新建一个web项目,该命令必须在 $GOPATH/src 下执行。最后会在 $GOPATH/src 相应目录下生成如下目录结构的项目:    
run     bee run 命令是监控 beego 的项目,但是注意该命令必须在 $GOPATH/src/appname 下执行。    
pack    目录用来发布应用的时候打包,会把项目打包成 zip 包   
api     新建一个api,bee api apiproject   
version   这个命令是动态获取 bee、beego 和 Go 的版本  
generate  这个命令是用来自动化的生成代码的  
migrate   这个命令是应用的数据库迁移命令,主要是用来每次应用升级,降级的SQL管理  

创建一个项目,进入到$GOPATH/src目录下

[victor@victor ~]$ cd $GOPATH/src
[victor@victor ~/go/src]$ pwd
/Users/victor/go/src
[victor@victor ~/go/src]$ ls
github.com
[victor@victor ~/go/src]$ bee new mysite

[victor@victor ~/go/src]$ tree mysite/
mysite/
├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── main.go
├── models
├── routers
│   └── router.go
├── static
│   ├── css
│   ├── img
│   └── js
│       └── reload.min.js
├── tests
│   └── default_test.go
└── views
    └── index.tpl

从目录结构中我们也可以看出来这是一个典型的 MVC 架构的应用,main.go 是入口文件。

App配置

beego 会自动解析 conf 目录下面的配置文件 app.conf 通过修改配置文件的相关属性,可以定义,开启的端口,应用名称等信息

  • appname
    应用名称,即通过 bee new 创建的项目名

  • runmode
    应用运行的模式,可自行设置选值prd、dev、test

  • MaxMemory
    文件上传默认内存缓存大小,默认值是 1 << 26(64M)。

  • DirectoryIndex
    是否开启静态目录的列表显示,默认不显示目录,

  • StaticDir
    静态文件目录设置,默认是static
    可配置单个或多个目录
    单个目录, StaticDir = download. 相当于 beego.SetStaticPath("/download",“download”)
    多个目录, StaticDir = download:down download2:down2. 相当于
    beego.SetStaticPath("/download",“down”) 和 beego.SetStaticPath("/download2",“down2”)

  • EnableGzip
    是否开启 gzip 支持,默认为 false 不支持 gzip,一旦开启了 gzip那么在模板输出的内容会进行 gzip 或者 zlib 压缩,根据用户的 Accept-Encoding 来判断。

  • StaticExtensionsToGzip
    允许哪些后缀名的静态文件进行 gzip 压缩,默认支持 .css 和 .js
    StaticExtensionsToGzip = .css, .js

  • HTTPAddr
    应用监听地址,默认为空,监听所有的网卡 IP
    HTTPAddr = 10.113.2.36

  • EnableHTTPS
    是否启用 HTTPS,默认是 false 关闭。当需要启用时,先设置 EnableHTTPS = true,并设置 HTTPSCertFile 和 HTTPSKeyFile
    beego.BConfig.Listen.EnableHTTPS = false

  • HTTPSAddr
    应用监听地址,默认为空,监听所有的网卡 IP。
    beego.BConfig.Listen.HTTPSAddr = “”

  • HTTPSPort
    应用监听端口,默认为 10443
    beego.BConfig.Listen.HTTPSPort = 10443

  • HTTPSCertFile
    开启 HTTPS 后,ssl 证书路径,默认为空。
    beego.BConfig.Listen.HTTPSCertFile = “conf/ssl.crt”

  • HTTPSKeyFile
    开启 HTTPS 之后,SSL 证书 keyfile 的路径。
    beego.BConfig.Listen.HTTPSKeyFile = “conf/ssl.key”

示例
appname = mysite
# httpport = 8080
# runmode = dev
runmode = prd

StaticDir = down1
DirectoryIndex = true
HTTPAddr = 10.113.2.36

# 开发环境
[dev]
httpport = 8080

# 测试环境
[prd]
httpport = 8082
路由设置

使用beego.Router,这个函数的功能是映射URL到controller,
第一个参数是Url
第二个参数是对应的Controller,也就是我们即将把请求分发到那个控制器来执行相应的逻辑

示例

### 可以看到引入了一个包,这个包只引入了里面的init函数
# 通过访问/user 去执行 UserController 的逻辑

package routers

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

func init() {
    beego.Router("/", &controllers.MainController{})
    # 设置路由
    beego.Router("/user", &controllers.UserController{})
}

# Controller配置文件
package controllers

import "github.com/astaxie/beego"

type UserController struct {
	beego.Controller
}

func (u *UserController) Get() {
	u.Data["Name"] = "Victor"
	u.Data["Age"] = 20
	u.TplName = "user.html"
}

Controller
beego.Controller 拥有很多方法,(Init、Prepare、Post、Get、Delete、Head)
模板的渲染
 文件、文件夹必须小写

当然也可以不使用模版,直接用 this.Ctx.WriteString 输出字符串,如:

func (this *MainController) Get() {
        this.Ctx.WriteString("hello")
} 
View
默认支持 tpl 和 html 的后缀名,调用和Go的模板语法一样
beego 默认注册了 static 目录为静态处理的目录,注册样式:URL 前缀和映射的目录(在/main.go文件中beego.Run()之前加入):

StaticDir["/static"] = "static"

可以设置多个静态文件处理目录,例如你有多个文件下载目录 download1、download2,你可以这样映射(在 /main.go 文件中 beego.Run() 之前加入):

beego.SetStaticPath("/down1", "download1")
beego.SetStaticPath("/down2", "download2")

这样用户访问 URL 
http://localhost:8080/down1/123.txt 则会请求 download1 目录下的 123.txt 文件。
``

你可能感兴趣的:(beego,beego,golang,beego,web,beego)