美文网首页
beego创建项目流程

beego创建项目流程

作者: 够浪你大哥 | 来源:发表于2019-01-04 11:07 被阅读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 控制器数据处理

    相关文章

      网友评论

          本文标题:beego创建项目流程

          本文链接:https://www.haomeiwen.com/subject/hmdhrqtx.html