匠心精神 - 良心品质腾讯认可的专业机构-IT人的高薪实战学院

咨询电话:4000806560

Golang开发实战:基于beego框架搭建后台管理系统!

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 {{range .users}} {{end}}
ID Name Age Address Action
{{.Id}} {{.Name}} {{.Age}} {{.Address}} Edit
``` 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框架开发一款简单的后台管理系统,从项目创建到模型文件、控制器文件、视图文件和路由配置都进行了详细讲解。在实践中,你可以根据需求进行修改和扩展,开发一款适合自己企业的后台管理系统。