案例
我们今天以注册和登陆作为我们今天的大练习,把今天讲到的内容都串起来。先注册,然后登陆。
在开始具体的业务之前我们要做数据库设计,在正式开发中这一步是非常重要,也比较复杂的,但是今天我们只实现登陆和注册,就简单有个用户名和密码即可,model.go内容如下:
package models
import (
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
type User struct {
Id int
Name string
Passwd string
}
func init(){
//1.连接数据库
orm.RegisterDataBase("default","mysql","root:123456@tcp(127.0.0.1:3306)/test?charset=utf8")
//2.注册表
orm.RegisterModel(new(User))
//3.生成表
//1.数据库别名
//2.是否强制更新
//3.创建表过程是否可见
orm.RunSyncdb("default",false,true)
}
注册
确定注册请求路径,修改路由文件
我们这里以/register
作为注册的请求路径。所以这里我们需要修改router.go文件的内容。
在router.go文件的init()函数中加下面这行代码:
beego.Router("/register", &controllers.UserController{
},"get:ShowRegister")
根据上面路由的指定,我们需要添加注册控制器
在controllers文件夹下创建一个user.go,然后在这个文件里面定义一个结构体UserController
当控制器。
type UserController struct{
beego.Controller
}
注意这里面添加的
beego.Controller
,是为了继承自beego自带的控制器。
添加显示注册页面函数
添加函数的时候需要注意,这个函数必须是UserController
的函数才可以,不然在路由里面调用不到。那如何把函数设置成UserController
的成员函数呢?是在函数名前面加上括号,然后放上UserController
的指针。这里我们先指定注册的视图。代码如下:
func (this*UserController)ShowRegister(){
this.TplName = "register.html"
}
注意:这里如果函数名首字母小写,路由同意找不到函数,所以函数名首字母必须大写
添加视图页面
在views文件夹下面创建一个名字为register.html
的文件。然后实现成类似界面:
我们做后台的不关注样式,明天直接拿现成的样式来用即可,我们重在实现功能。
form标签里面需要添加两个属性,一个是action,一个是method,action其实就是请求路径,这里处理的还是注册业务,所以我们还用register请求,action = "/register"
,因为是上传数据,所以我们把method设置为post,即method="post"
,代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
</head