Golang开发实战:基于beego框架搭建后台管理系统!
随着互联网技术的快速发展,后台管理系统已经成为企业必备的重要系统,帮助各位管理人员更好地控制企业数据、统计数据、分析数据等。在这篇文章中,我们将会讲解如何使用Golang语言和beego框架开发一款简单的后台管理系统,实现基本的增删改查操作。
1、前期准备
在开始之前,需要确保你已经安装好了Golang语言和beego框架,如果你还没有安装的话,请先前往官网了解如何安装(Golang官网 https://golang.google.cn/ 、beego官网 https://beego.me/ )。
2、创建项目
首先,我们需要创建一个beego项目,创建命令如下:
```
bee new project_name
```
创建完成后,可以将项目打开,目录结构如下:
```
project_name
├── conf
│ └── app.conf
├── controllers
├── main.go
├── models
├── routers
│ └── router.go
└── static
├── css
├── img
└── js
```
3、创建数据表
在这里,我们以用户管理为例,创建一个名为"users"的数据表,字段如下:
```sql
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`age` int(11) NOT NULL,
`address` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
```
4、配置数据库信息
在我们开始使用数据库之前,需要先在项目中配置好数据库信息,打开conf/app.conf文件,在其中添加如下配置:
```
appname = project_name
httpport = 8080
runmode = dev
beegoappname = project_name
dbhost = 127.0.0.1
dbport = 3306
dbuser = root
dbpass = root
dbname = project_name
```
5、创建模型文件
在models目录中创建一个user.go文件,编写如下代码:
```go
package models
import (
"github.com/astaxie/beego/orm"
)
type User struct {
Id int
Name string
Age int
Address string
}
func init() {
orm.RegisterModel(new(User))
}
func GetAllUsers() ([]*User, error) {
o := orm.NewOrm()
var users []*User
_, err := o.QueryTable("users").All(&users)
return users, err
}
func AddUser(name string, age int, address string) error {
o := orm.NewOrm()
user := &User{
Name: name,
Age: age,
Address: address,
}
_, err := o.Insert(user)
return err
}
func UpdateUser(id int, name string, age int, address string) error {
o := orm.NewOrm()
user := &User{
Id: id,
Name: name,
Age: age,
Address: address,
}
_, err := o.Update(user)
return err
}
func DeleteUser(id int) error {
o := orm.NewOrm()
user := &User{
Id: id,
}
_, err := o.Delete(user)
return err
}
func GetUserById(id int) (*User, error) {
o := orm.NewOrm()
user := &User{
Id: id,
}
err := o.Read(user)
if err != nil {
return nil, err
}
return user, nil
}
```
在这里,我们定义了一个User模型,实现了增、删、改、查等操作,这些操作会存储在数据库中。
6、创建控制器文件
在controllers目录中创建一个user.go文件,编写如下代码:
```go
package controllers
import (
"github.com/astaxie/beego"
"project_name/models"
"strconv"
)
type UserController struct {
beego.Controller
}
func (c *UserController) Get() {
users, err := models.GetAllUsers()
if err != nil {
c.Ctx.WriteString("error")
} else {
c.Data["users"] = users
c.TplName = "index.tpl"
}
}
func (c *UserController) Post() {
name := c.GetString("name")
age, _ := strconv.Atoi(c.GetString("age"))
address := c.GetString("address")
err := models.AddUser(name, age, address)
if err != nil {
c.Ctx.WriteString("error")
} else {
c.Redirect("/user", 302)
}
}
func (c *UserController) Put() {
id, _ := strconv.Atoi(c.Ctx.Input.Param(":id"))
name := c.GetString("name")
age, _ := strconv.Atoi(c.GetString("age"))
address := c.GetString("address")
err := models.UpdateUser(id, name, age, address)
if err != nil {
c.Ctx.WriteString("error")
} else {
c.Redirect("/user", 302)
}
}
func (c *UserController) Delete() {
id, _ := strconv.Atoi(c.Ctx.Input.Param(":id"))
err := models.DeleteUser(id)
if err != nil {
c.Ctx.WriteString("error")
} else {
c.Redirect("/user", 302)
}
}
func (c *UserController) GetOne() {
id, _ := strconv.Atoi(c.Ctx.Input.Param(":id"))
user, err := models.GetUserById(id)
if err != nil {
c.Ctx.WriteString("error")
} else {
c.Data["user"] = user
c.TplName = "edit.tpl"
}
}
```
在这里,我们定义了一个UserController控制器,实现了获取用户列表、添加用户、修改用户、删除用户和获取单个用户信息等操作。
7、创建视图文件
在views目录中创建两个tpl文件,分别为index.tpl和edit.tpl,编写如下代码:
index.tpl
```html
User List
User List
Add User
| ID |
Name |
Age |
Address |
Action |
{{range .users}}
| {{.Id}} |
{{.Name}} |
{{.Age}} |
{{.Address}} |
Edit
|
{{end}}
```
edit.tpl
```html
Edit User
Edit User
```
在这里,我们定义了两个视图文件,分别为用户列表和用户编辑页面。
8、配置路由
打开routers/router.go文件,编写如下代码:
```go
package routers
import (
"github.com/astaxie/beego"
"project_name/controllers"
)
func init() {
beego.Router("/", &controllers.UserController{})
beego.Router("/user", &controllers.UserController{})
beego.Router("/user/add", &controllers.UserController{}, "get:Add")
beego.Router("/user/:id([0-9]+)/edit", &controllers.UserController{}, "get:GetOne")
beego.Router("/user/:id([0-9]+)", &controllers.UserController{})
}
```
在这里,我们配置了5个路由规则,分别为用户列表、添加用户、编辑用户、删除用户和获取单个用户信息。
9、测试
运行如下命令启动服务:
```
bee run
```
在浏览器中访问 http://localhost:8080/user ,即可看到用户列表页面,可以执行添加、修改和删除操作,所有操作都将在数据表中进行存储。
至此,一款简单的后台管理系统已经开发完毕。
总结:
本文详细介绍了如何使用Golang语言和beego框架开发一款简单的后台管理系统,从项目创建到模型文件、控制器文件、视图文件和路由配置都进行了详细讲解。在实践中,你可以根据需求进行修改和扩展,开发一款适合自己企业的后台管理系统。