您的位置 首页 技术

golang用户登录怎么做

golang实现用户登录注册的方法如下: 第一步 注册models models下建立models.gomodels.go文件 package modelsimport (“git…

golang实现用户登录注册的方法如下:

第一步 注册models

models下建立models.gomodels.go文件

package modelsimport ("github.com/astaxie/beego""github.com/astaxie/beego/orm"_ "github.com/go-sql-driver/mysql")func RegisterDB() {//注册驱动orm.RegisterDriver("mysql", orm.DRMySQL)//数据库链接//注册默认数据库var db_url string = beego.AppConfig.String("username_DB") + ":" + beego.AppConfig.String("password_DB") + "@tcp(" + beego.AppConfig.String("host_DB") + ")/" + beego.AppConfig.String("name_DB") + "?charset=" + beego.AppConfig.String("charset")beego.Info(db_url)orm.RegisterDataBase("default", "mysql", db_url)// orm.RegisterDataBase("default", "mysql", "an:111@tcp(127.0.0.1:3306)/yoo_home?charset=utf8")// //注册modelorm.RegisterModel(new(TUser))}

第二步 数据库连接的需要

conf下的app.conf文件

appname = anhttpport = 8080runmode = devsessionon = true#数据库为mysqlhost_DB = "127.0.0.1"port_DB = "3306"charset = "utf8"name_DB = "ancg"username_DB = "an"password_DB = 111

第三步 写个简单的前端 view界面

views 下建立client.html文件

<!DOCTYPE html><html><head><title>客户端接口测试</title></head><body><label>注册</label><form action="/client " method="POST"><label>[options == register 注册]</label><div>options:<input type="text" value="register" name="options"></div><div>tel:<input type="text" name="Tel"></div><div>pwd:<input type="text" name="Pwd"></div><input type="submit" name="注册"Submit/></form><br><label>登录</label><form action="/client " method="POST"><label>[options == login 登录]</label><div>options:<input type="text" value="login" name="options"></div><div>tel:<input type="text" name="Tel"></div><div>pwd:<input type="text" name="Pwd"></div><input type="submit" name="注册"Submit/></form></body></html>

第四步 在models中 建立TUser 用来为数据库自动建表使用

TUser.go

package modelsimport ("github.com/astaxie/beego/orm"//_"github.com/go-sql-driver/mysql")//用户表type TUser struct {//用户序号Id int64//电话号码Tep string//密码Pwd string//收款人Payee string//地址Address string//收款帐号Amount string//账号类别AmountType string//是否消费者IsCustomer bool//是否商家IsSeller bool//是否配送员IsDiliver bool//是否管理员IsManager bool//微信openIdVid string//是否冻结IsLock bool//创建时间 --- 时间戳AddTime int64}//新建用户func AddUser(user *TUser) (int64, error) {o := orm.NewOrm() //数据库userId, err := o.Insert(user) //插入数据return userId, err}//查询账号func GetUserById(userId int64) (*TUser, error) {o := orm.NewOrm() //数据库user := new(TUser) //TUser就是第9行struct的数据库,就是mysql的表qs := o.QueryTable("t_user") //表名为t_usererr := qs.Filter("id", userId).One(user) //One是指查询一条数据,One(user)是查询mysql表中一条数据return user, err}//手机号查询账号func GetUserByTel(tel string) (*TUser, error) {o := orm.NewOrm()user := new(TUser) //TUser就是第9行struct的数据库,就是mysql的表qs := o.QueryTable("t_user") //表名为t_usererr := qs.Filter("tel", tel).One(user) //One是指查询一条数据,One(user)是查询mysql表中一条数据return user, err}//微信Id查询账号func GetUserByVid(vid int64) (*TUser, error) {o := orm.NewOrm()user := new(TUser) //TUser就是第9行struct的数据库,就是mysql的表qs := o.QueryTable("t_user") //表名为t_usererr := qs.Filter("vid", vid).One(user) //One是指查询一条数据,One(user)是查询mysql表中一条数据return user, err}

第五步 controllers 里面建立一个主接options的文件,用对应option来调用其它的controllers

client.go文件

package controllersimport ("github.com/astaxie/beego""time")type ClientController struct {beego.Controller}func (this *ClientController) Get() {this.TplName = "client.html"}func (this *ClientController) Post() {options := this.Input().Get("options")beego.Info(options)//请求检查方法if options != "" {switch options {case "login":this.login()case "register":this.register()default:this.Data["json"] = map[string]interface{}{"status": 400, "msg": "无对应处理方法!", "time": time.Now().Format("2006-12-12 12:12:12")}this.ServeJSON()return}this.Data["json"] = map[string]interface{}{"status": 400, "msg": "options为空", "time": time.Now().Format("2006-12-12 12:12:12")}this.ServeJSON()return}}

更多golang知识请关注golang教程栏目。

以上就是golang用户登录怎么做的详细内容,更多请关注24课堂在线网其它相关文章!

本文来自网络,不代表24小时课堂在线立场,转载请注明出处:https://www.24ketang.cn/16850.html

为您推荐

返回顶部