其他分享
首页 > 其他分享> > Go语言框架:Beego

Go语言框架:Beego

作者:互联网

 以下beego3基于go v1.8+,bee v2.0+,开发工具是goland2022.1

一、Beego简介

1、安装

1)安装

直接使用Go 安装包的形式: go get github.com/beego/beego(依赖go.mod文件1),可能会在goland里面无法使用。

go get github.com/beego/beego/v2

go get github.com/beego/bee/v2

注意:

go get只能下载普通的包,如果下载安装程序需要用go install

go install github.com/beego/beego/v2

go install github.com/beego/bee/v2

可以通过以下方法来配置在goland里面使用2

(1)通过goland开发工具打开创建的项目,基于modules管理项目依赖     配置GOPROXY=https://goproxy.cn,direct

(2)执行go mod init projectname生成依赖管理文件go.mod(如果已存在,则省略)

(3)执行go mod vendor将依赖包生成到本地

2测试

在%GOPATH%/src目录下创建一个测试项目,并启动,安装完成,浏览器输入http://localhost:8080/就可以创建的项目信息

cd %GOPATH%/src
bee new hello
cd hello
bee run hello

 

注意:如果没有bee命令4

 可以进行进入下载的bee工具源码目录(如:D:\GOPATH\pkg\mod\github.com\beego\bee\v2@v2.0.2):

执行 go build 会生成bee.exe文件,然后将bee.exe拷贝被go的安装目录的bin下。

二、Beego基本说明

1、Beego的MVC

Beego是典型的MVC框架。

1)M:Model

M:Model,即Beego ORM,对象关系映射,以及对象的持久化

(1)特性:

支持Go的所有类型存储;更简单的CRUD的风格;完整实现健壮稳定的ORM。

(2)支持的数据库:MySQL、PostgreSQL,Sqlite3

2)V:View

V:View,体现为模板,Beego通过处理模板和渲染模板展现视图。

(1)静态文件处理

(2)模板处理

(3)模板分页处理

3)C:Controller

C:Controller,体现为各种功能具有以下特性:

(1)路由功能

(2)控制器函数

(3)CSRF(Cross-Site request forgery)过滤器

(4)Session

(5)错误处理&日志功能

2、Beego的RESTFUL路由-GET

 1)例子

package main

import "github.com/beego/beego"

type RestfulController struct {
	beego.Controller
}

func (this *RestfulController) Get() {
	this.Ctx.WriteString("test")
}
func main() {
	beego.Router("rs", &RestfulController{})
	beego.Run("127.0.0.1:80")
}

3、Beego的RESTFUL路由-POST

1)例子 

package main

import "github.com/beego/beego"

type RestfulController struct {
	beego.Controller
}

func (this *RestfulController) Post() {
	this.Ctx.WriteString("test")
}
func main() {
	beego.Router("rs", &RestfulController{})
	beego.Run("127.0.0.1:80")
}

4、Beego的正则路由

1)例子 

package main

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

type RegExpController struct {
	beego.Controller
}

func (this *RegExpController) Get() {
	this.Ctx.WriteString(fmt.Sprintln("test get"))
	id := this.Ctx.Input.Param(":id")
	this.Ctx.WriteString(fmt.Sprintf("id is :%s\n", id))
}

func main() {
	//正则路由,从路径中提取参数
	beego.Router("/re/?:id", &RegExpController{})
	beego.Run("127.0.0.1:80")
}

5、Beego的Session

         参考: 1、'go get' is no longer supported outside a module. 2、goland搭建beego开发环境 3、beego官网 4、没有bee命令  

标签:beego,框架,bee,github,go,Beego,Go,com
来源: https://www.cnblogs.com/hoaprox/p/16246422.html