欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

beego创建项目流程

程序员文章站 2022-06-12 17:34:26
...

第一步

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:[email protected](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 控制器数据处理