go语言实现一个简单的登录注册web小程序
2013-04-25 08:09
871 查看
最近学习golang也有一段时间了,基础差不多学了个大概,因为本人是java程序员,所以对web更感兴趣。根据《go web编程》中的例子改编一个更简单的例子,供新手参考,废话不多说,上菜:
这个例子使用到了beego框架和beedb框架,如果是go新手beego和beedb得自己去google下载安装。
目录结构:
index.go
main.go
error.tpl
数据库用的是mysql,建表语句
程序跑起来是没有问题,但是session老是取不到数据,求大神解释!
这个例子使用到了beego框架和beedb框架,如果是go新手beego和beedb得自己去google下载安装。
目录结构:
index.go
package controllers import ( "fmt" "github.com/astaxie/beego" "login/models" ) type IndexController struct { beego.Controller } func (index *IndexController) Get() { sess := index.StartSession() username := sess.Get("username") fmt.Println(username) if username == nil || username == "" { index.TplNames = "index.tpl" } else { index.TplNames = "success.tpl" } } func (index *IndexController) Post() { sess := index.StartSession() var user models.User inputs := index.Input() //fmt.Println(inputs) user.Username = inputs.Get("username") user.Pwd = inputs.Get("pwd") err := models.ValidateUser(user) if err == nil { sess.Set("username", user.Username) fmt.Println("username:", sess.Get("username")) index.TplNames = "success.tpl" } else { fmt.Println(err) index.TplNames = "error.tpl" } }regist.go
package controllers import ( "fmt" "github.com/astaxie/beego" "login/models" ) type RegistController struct { beego.Controller } func (this *RegistController) Get() { this.TplNames = "regist.tpl" } func (this *RegistController) Post() { var user models.User inputs := this.Input() //fmt.Println(inputs) user.Username = inputs.Get("username") user.Pwd = inputs.Get("pwd") err := models.SaveUser(user) if err == nil { this.TplNames = "success.tpl" } else { fmt.Println(err) this.TplNames = "error.tpl" } }models.go
package models import ( "database/sql" "errors" "fmt" "github.com/astaxie/beedb" _ "github.com/ziutek/mymysql/godrv" ) type User struct { Id int `PK` Username string Pwd string } func getLink() beedb.Model { db, err := sql.Open("mysql", "root:root@tcp(192.168.1.81:3306)/test_my?charset=utf8") if err != nil { panic(err) } orm := beedb.New(db) return orm } func SaveUser(user User) error { orm := getLink() fmt.Println(user) err := orm.Save(&user) return err } func ValidateUser(user User) error { orm := getLink() var u User orm.Where("username=? and pwd=?", user.Username, user.Pwd).Find(&u) if u.Username == "" { return errors.New("用户名或密码错误!") } return nil }
main.go
package main import ( //"fmt" "github.com/astaxie/beego" "login/controllers" ) type MainController struct { beego.Controller } func main() { beego.SessionOn = true beego.RegisterController("/", &controllers.IndexController{}) beego.RegisterController("/regist", &controllers.RegistController{}) beego.Run() }
error.tpl
<html> <body> error </body> </html>success.tpl
<html> <body> successed </body> </html>index.tpl
<html> <body> <h1>login</h1> <form action="/" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="pwd"><br> <input type="submit" value="登录"><br> <a href="/regist">注册</a> </form> </body> </html>regist.tpl
<html> <body> <h1>regist</h1> <form action="/regist" method="post"> 用户名:<input type="text" name="username"><br> 密码:<input type="password" name="pwd"><br> <input type="submit" value="注册"> </form> </body> </html>
数据库用的是mysql,建表语句
CREATE TABLE user ( id INT, username VARCHAR(32), pwd VARCHAR(32), PRIMARY KEY(id) );
程序跑起来是没有问题,但是session老是取不到数据,求大神解释!
相关文章推荐
- go语言实现一个简单的登录注册web小程序
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(二)
- 一个简单的PHP登录与注册程序源码
- ant design+node.js+mongoose实现一个简单的注册登录功能
- 7. Swift 基于Xmpp和openfire实现一个简单的登录注册
- 用java实现的一个简单web服务器程序
- JavaWeb + mySQL + Android 实现Android简单的注册登录
- Vue+Vue Router+Axios+Webpack+Flask+MySQL实现简单的注册、登录验证功能
- 【C#】对异步请求处理程序IHttpAsyncHandler的理解和分享一个易用性封装 【手记】走近科学之为什么明明实现了IEnumerable<T>的类型却不能调用LINQ扩展方法 【手记】手机网页弹出层后屏蔽底层的滑动响应 【手记】ASP.NET提示“未能创建类型”处理 【Web】一个非常简单的移动web消息框 【手记】解决EXCEL跑SQL遇“查询无法运行或数据库表无法打开...”
- [J2EE]实现一个最简单的基于Servlet的web程序
- 吴昊品工程级别软件项目 Round 5 —— 用JavaScript实现一个简单的注册登录系统
- (NodeJS学习文章收集三) node.js基于express框架搭建一个简单的注册登录Web功能
- web实现验证码和简单的登录注册
- python实现一个简单的登录注册Demo
- Go语言实现简单的一个静态WEB服务器
- 一个简单的Web登录程序 GET和POST的区别
- javaWeb 简单注册登录(含数据库连接) -- (三) 实现用户注册请求的响应
- 记录我的第一个用ssh框架开发的web项目——实现简单的登录注册以及增删查改(一)
- 利用Xpath实现一个简单的登录验证程序
- 新手教你学Spring MVC4.0+MyBatis+MySQL5.0实现简单用户注册登录程序(三)