beego创建项目流程

2019-01-04  本文已影响0人  够浪你大哥

第一步

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()
}

第五步

<form  class="login_form" name = "login" method="post" action="/register">

视图文件设置请求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 控制器数据处理

上一篇下一篇

猜你喜欢

热点阅读