Beego项目框架

鉴于有学习go语言的必要(其实就是项目需要),故跟着Golang tutorial series文档过了一遍基本语法,当然是不熟悉,然后做了个demo Repository (https://github.com/HelloMrShu/go_bp),最后把一个需要界面的工具重写了一下,在此记录一下,共耗时两周

鉴于是公司项目,故只说核心内容,有问题私信沟通即可

1 架构和流程
在这里插入图片描述
在这里插入图片描述
2 目录结构
基本目录结构是通过bee工具生成的,这里就加了个utils目录,作为常用工具目录
directory
作者应该是借鉴了php相关框架目录思想,即基本的MVC分层思路,配置、控制器、模型、路由、静态文件、测试、视图,以及入口文件main.go

3 运行
这里借助bee工具,bee run 启动项目(至于怎么安装,请自行搜索,如果被墙,就下载包,本地安装即可)
run
4 路由
内容在routers文件里

package routers

import (
	"template/controllers"

	"github.com/astaxie/beego"
)

func init() {
	beego.Router("/", &controllers.MainController{})
	beego.Router("/ae/test", &controllers.RuleController{}, "get:AeTest")
}

第一个默认路由
第二个表示请求localhost:8082/ae/test,访问路径是去controller里的RuleController寻找AeTest方法,如下:

func (c *RuleController) AeTest() {
	...
	c.Layout = "components/layout.tpl" //指定layout文件
	//渲染分页数据到模板,默认模板路径是views/rulecontroller/aetest.tpl
	//类似框架通常的路径应该为views/rule/aetest.tpl
	//这里的分页插件是根据业务自己写的
	c.Data["paginator"] = utils.Set(page, page_size, total) 
}

5 模型定义
beego的表定义是struct,beego的orm插件有和mysql类型对应的定义,但好像不全,注意,beego在找表的时候,是遵循驼峰命名的,下面表名为 ex_template,切记

type ExTemplate struct {
	Id   		int32 `orm:"pk"`
	Platform 	string
	Bidmode 	string
	Name 		string
	Media  		string
	Special_type string
	Content 	string
	Is_delete	int8
}

6 注册数据库和模型
务必注册一个alias为default的数据库

model1.go
func init() {
	orm.RegisterDataBase("default", "mysql", "root:root@tcp(127.0.0.1:3306)/test?charset=utf8", 30)
	//注册模型
	orm.RegisterModel(new(ExTemplate))
}

model2.go
func init() {
	//再注册一个db
	orm.RegisterDataBase("test1", "mysql", "root:root@tcp(127.0.0.1:3306)/test1?charset=utf8", 30)
}

注册多个db,就涉及到切换的问题,切记

//如果查询的是default的表
o := orm.NewOrm()
qs := o.QueryTable("ex_template_test")

//如果需要切换db
o := orm.NewOrm()
o.Using("test1")
qs := o.QueryTable("ex_template_test")

7 静态文件
自定义的静态文件比较简单,如果你定义了自己的css,js等,如下引入即可

<script src="/static/js/exrule.js"></script>

这就是简单的入门内容,高级功能请自行学习

参考文档
1 go手册,https://golangbot.com/learn-golang-series/
2 beego文档,https://beego.me/docs/intro/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值