执行以下命令,就能够在你的GOPATH/src 目录下发现beego admin
$ go get github.com/beego/admin
首先,使用bee工具创建一个应用程序,参考http://beego.me/quickstart
$ bee new hello
创建成功以后,你能得到一个名叫hello的应用程序, 现在开始可以使用它了。找到到刚刚新建的程序hello/routers/router.go这个文件
import (
"hello/controllers" //自身业务包
"github.com/astaxie/beego" //beego 包
"github.com/beego/admin" //admin 包
)
引入admin代码,再init函数中使用它
func init() {
admin.Run()
beego.Router("/", &controllers.MainController{})
}
数据库目前仅支持mysql,postgresql,sqlite3,后续会添加更多的数据库支持。
数据库的配置信息需要填写,程序会根据配置自动建库 mysql数据库链接信息
db_host = localhost
db_port = 3306
db_user = root
db_pass = root
db_name = admin
db_type = mysql
postgresql数据库链接信息
db_host = localhost
db_port = 5432
db_user = postgres
db_pass = postgres
db_name = admin
db_type = postgres
db_sslmode=disable
sqlite3数据库链接信息
###db_path 是指数据库保存的路径,默认是在项目的根目录
db_path = ./
db_name = admin
db_type = sqlite3
把以上信息配置成你自己数据库的信息。
还有一部分权限系统需要配置的信息
sessionon = true
rbac_role_table = role
rbac_node_table = node
rbac_group_table = group
rbac_user_table = user
#admin用户名 此用户登录不用认证
rbac_admin_user = admin
#默认不需要认证模块
not_auth_package = public,static
#默认认证类型 0 不认证 1 登录认证 2 实时认证
user_auth_type = 1
#默认登录网关
rbac_auth_gateway = /public/login
#默认模版
template_type=easyui
以上配置信息都需要加入到app.conf文件中。
最后还需要把js,css,image,tpl这些文件复制过来。
$ cd $GOPATH/src/hello
$ cp -R ../github.com/beego/admin/static ./
$ cp -R ../github.com/beego/admin/views ./
全部做好了以后。就可以编译了,进入hello目录
$ go build
首次启动需要创建数据库、初始化数据库表。
$ ./hello -syncdb
好了,现在可以通过浏览器地址访问了http://localhost:8080/
默认得用户名密码都是admin
如何增加自己的模块:
1 controller中引入beegoadmin 下的相关包:
import中导入beego/admin下的相关代码
"github.com/beego/admin/src/rbac"
struct中增加
rbac.CommonController
1 确保数据库中存在该模块相关的表 比如:examined_items
2 命令行切换到项目的根目录下输入下面的指令:
bee generate appcode-tables="examined_items" -driver=mysql-conn="root:123@tcp(127.0.0.1:3306)/gUS" -level=3
3 对自动生成的路由提示是否后覆盖选择否
4 在route.go中增加相关模块的路由配置,并根据需要增加特定请求对应的路由beego.Include(&controllers.ExaminedItemsController{})
在commentsRouter_gusadmin_controllers.go中增加RESTful格式路由
beego.GlobalControllerRouter["gusadmin/controllers:ExaminedItemsController"]= append(beego.GlobalControllerRouter["gusadmin/controllers:ExaminedItemsController"],
beego.ControllerComments{
"Delete",
`/examined_items/:id`,
[]string{"delete"},
nil})
5 根据接口需要返回的结果对controller中自动生成的method和可生成路由的注解进行修改