1、注册页面
- 拿到浏览器传递的数据
- 数据处理和判断
- 插入数据库(数据库表User)
- 返回试图
# vim controllers/User.go
package controllers
import (
"classOne/models"
"github.com/astaxie/beego/orm"
beego "github.com/beego/beego/v2/server/web"
"log"
)
type RegController struct {
beego.Controller
}
func (c *RegController) ShowReg() {
c.TplName = "register.html"
}
func (c *RegController) HandleReg() {
//1.拿到浏览器传递的数据
name := c.GetString("userName")
password := c.GetString("password")
//2.数据处理
if name == "" || password == "" {
log.Println("用户名和密码不能为空")
c.TplName = "register.html"
return
}
//3.插入数据库
//1.获取orm对象
o := orm.NewOrm()
//2.获取插入对象
user := models.User{}
//3.插入操作
user.UserName = name
user.PassWord = password
_, err := o.Insert(&user)
if err != nil {
log.Println("插入数据失败")
}
//4.根据结果返回登录和注册
c.Ctx.WriteString("注册成功")
}
2、登录的业务流程
- 拿到浏览器数据
- 数据处理
- 查找数据库
- 返回视图 ```go package controllers
import ( “classOne/models” “github.com/astaxie/beego/orm” beego “github.com/beego/beego/v2/server/web” “log” )
type RegController struct { beego.Controller }
func (c *RegController) ShowReg() { c.TplName = “register.html” }
func (c *RegController) HandleReg() { //1.拿到浏览器传递的数据 name := c.GetString(“userName”) password := c.GetString(“password”) //2.数据处理 if name == “” || password == “” { log.Println(“用户名和密码不能为空”) c.TplName = “register.html” return } //3.插入数据库 //1.获取orm对象 o := orm.NewOrm() //2.获取插入对象 user := models.User{} //3.插入操作 user.UserName = name user.PassWord = password _, err := o.Insert(&user) if err != nil { log.Println(“插入数据失败”) } //4.根据结果返回登录和注册 c.Ctx.WriteString(“注册成功”) }
#
登录业务实现
#
type LoginController struct { beego.Controller }
func (c *LoginController) ShowLogin() { c.TplName = “login.html”
}
func (c *LoginController) HandleLogin() { //1.拿到浏览器传递的数据 name := c.GetString(“userName”) password := c.GetString(“password”) //2.数据处理 if name == “” || password == “” { log.Println(“错误提示:用户名或密码不能为空”) c.TplName = “login.html” return } //3.查询数据库 //1.获取orm对象 o := orm.NewOrm() //2.获取查询对象 user := models.User{} //3.执行查询操作 user.UserName = name err := o.Read(&user, “UserName”) if err != nil || user.PassWord != password { log.Println(“用户名密码错误”) c.TplName = “login.html” return } //4.判断密码是否一致 //if user.PassWord != password { // log.Println(“密码错误”) // c.TplName = “login.html” // return //}
//5.返回视图
c.Ctx.WriteString("用户登录成功")
//else {
// log.Printf("查询成功用户为:%s,密码为%s",name,password)
// c.TplName="index.html"
// return
//}
}
3、状态码
- Redirect
- 浏览器端的请求,浏览器再次访问了服务器端,地址改变了
- 不能传递数据
- C.tplname
- 服务器端的功能,浏览器没有再次发送请求,用的还是上次的地址,地址不变
- 传递数据