第一步
func init() {
beego.Router("/", &controllers.MainController{})
//创建一个访问首页的路由
beego.Router("/register",&controllers.UserController{},"get:ShowRegister")
}
router路由,在路由下创建一个指定一个访问首页的控制器
第二步
//创建一个公共类以供路由调用
type UserController struct {
//继承beego的控制器函数
beego.Controller
}
//创建一个展示首页的方法
func (th*UserController)ShowRegister() {
//指定一个视图文件,来输出数据
th.TplName ="register.html"
}
控制器内新建首页文件夹 穿件输出首页方法
第三步
import (
"github.com/astaxie/beego/orm"
_"github.com/go-sql-driver/mysql"
)
//创建字段
type User struct {
Id int
UserName string
Pwd string
}
//建表但步骤
func init() {
//连接数据库 取别名(默认名称)
orm.RegisterDataBase("default","mysql","root:123456@tcp(127.0.0.1:3306)/newsWeb?charset=utf8")
//创建表名
orm.RegisterModel(new(User))
//炮起来(执行操作)
orm.RunSyncdb("default",false,true)
}
models 模块下创建数据库连接并创建表
第四步
import (
_ "newsWeb/routers"
"github.com/astaxie/beego"
)
func main() {
beego.Run()
}
第五步
视图文件设置请求post
}
func (th *UserController)HandleRegister() {
//获取前端传递过来的数据
//视图网页获取 登陆名和密码
userName := th.GetString("userName")
pwd := th.GetString("password")
beego.Info(userName,pwd)
//数据校验(验证用户名和密码防止恶意登陆)
if userName =="" || pwd == ""{
beego.Error("用户名或者密码不能为空")
th.TplName = "register.html"
return
}
//把前端的数据插入进数据库
//1.获取orm对象
o := orm.NewOrm()
//2.创建表名
var user models.User
user.UserName = userName
user.Pwd = pwd
//执行插入操作
count, err := o.Insert(&user)
if err != nil {
beego.Error("用户注册失败")
th.TplName = "register.html"
return
}
beego.Info("插入的数据条数=",count)
//th.Redirect() 页面跳转,会改变页面路径
//th.TplName = 页面渲染,传递数据(错误信息)
th.Redirect("/login",302)
}
controllers控制器下,获取数据和把数据插入数据操作
第六步
//创建登陆的路由跳转
beego .Router("/login",&controllers.UserController{},"get:ShowLogin;post:HandleLogin")
}
创建路由
func (th *UserController)HandleLogin() {
//获取数据
userName := th.GetString("userName")
pwd := th.GetString("password")
//校验数据
if userName == "" || pwd == ""{
th.Data["err"] = "用户名或者密码不能为空"
th.TplName = "login.html"
return
}
//数据库的查询操作
//1.获取orm对象
o := orm.NewOrm()
//2.获取数据表名
var user models.User
//3.把前端传来的数据付给数据库
user.UserName = userName
//核对数据
err := o.Read(&user, "userName")
if err != nil {
th.Data["err"] = "用户名不存在"
th.TplName = "login.html"
return
}
if user.Pwd != pwd{
th.Data["err"] = "密码错误"
th.TplName = "login.html"
return
}
//返回数据
th.Ctx.WriteString("登陆成功")
}
controllers 控制器数据处理