内容简介:框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了2.0版本。具有快速灵活,容错方便等特点。框架更像是一些常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。main.go:data.go:
一、Gin框架介绍
框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。Gin是一个golang的微框架,封装比较优雅,API友好,源码注释比较明确,已经发布了2.0版本。具有快速灵活,容错方便等特点。框架更像是一些常用函数或者 工具 的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。
二、gin安装
首先需要安装,安装比较简单,使用go get即可
go get github.com/gin-gonic/gin
如果安装失败,直接去Github clone下来,放置到对应的目录即可。
三、简单介绍构建过程
1、文件夹结构
https ————main.go ————data ——————————data.go ————gin_router ——————————router.go ————gin_api ——————————func.go ————func_judge ——————————isExist.go
2、相关文件代码
main.go:
package main import ( Main "https/gin_router" ) func main() { Main.InitRouter() }
data.go:
package data //用于存储用户信息的结构体,Id,Name,Passwd type User struct { Id int Name string Passwd string } //用于存储用户的切片 var Slice []User //用于临时存储用户登录信息的Map var State = make(map[string]interface{})
route.go
package gin_router import ( api "https/gin_api" "github.com/gin-gonic/gin" ) func InitRouter() { gin.SetMode(gin.ReleaseMode) //使用gin的Default方法创建一个路由handler router := gin.Default() //设置默认路由当访问一个错误网站时返回 router.NoRoute(api.NotFound) //使用以下gin提供的Group函数为不同的API进行分组 v1 := router.Group("admin") { v1.GET("/register", api.Register) v1.GET("/login", api.Login) } //监听服务器端口 router.Run(":8080") }
func.go:
package gin_regAndlog import ( . "https/data" Func "https/func_judge" "net/http" "github.com/gin-gonic/gin" ) //注册 func Register(c *gin.Context) { //获取用户名、密码 name := c.Request.FormValue("Name") passwd := c.Request.FormValue("Passwd") //判断用户是否存在 //存在输出状态1 //不存在创建用户,保存密码与用户名 Bool := Func.IsExist(name) if Bool { //注册状态 State["state"] = 1 State["text"] = "此用户已存在!" } else { //用户不存在即添加用户 AddStruct(name, passwd) State["state"] = 1 State["text"] = "注册成功!" } //把状态码和注册状态返回给客户端 c.String(http.StatusOK, "%v", State) } //登录 func Login(c *gin.Context) { name := c.Request.FormValue("Name") passwd := c.Request.FormValue("Passwd") //先判断用户是否存在,存在再判断密码是否正确 Bool := Func.IsExist(name) if Bool { Bool_Pwd := Func.IsRight(name, passwd) if Bool_Pwd { State["state"] = 1 State["text"] = "登录成功!" } else { State["state"] = 0 State["text"] = "密码错误!" } } else { State["state"] = 2 State["text"] = "登录失败!此用户尚未注册!" } c.String(http.StatusOK, "%v", State) } //设置默认路由当访问一个错误网站时返回 func NotFound(c *gin.Context) { c.JSON(http.StatusNotFound, gin.H{ "status": 404, "error": "404 ,page not exists!", }) } //添加用户 func AddStruct(name string, passwd string) { var user User user.Name = name user.Passwd = passwd user.Id = len(Slice) + 1 Slice = append(Slice, user) }
isExist.go:
package func_judge import ( . "https/data" ) //判断是否存在用户 func IsExist(user string) bool { //如果长度为0说明尚未有用户注册 if len(Slice) == 0 { return false } else { //遍历切片 for _, v := range Slice { // return v.Name == user //此时只能和第一个比较,所以第一个之后全为false if v.Name == user { return true } } } return false } //判断密码是否正确 func IsRight(user string, passwd string) bool { for _, v := range Slice { if v.Name == user { //先确认姓名一致,密码相同返回true return v.Passwd == passwd } } return false }
四、RESTClient测试
注册:
注册
客户端反馈结果
注册失败
登录:
登录
登录成功
以上所述就是小编给大家介绍的《使用Gin框架构建一个简单的注册登录后台(Go语言)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- React后台框架搭建
- 推荐一个React的管理后台框架
- Tplay — 基于 ThinkPHP 的后台管理框架
- Erupt Framework 正式开源,后台管理框架
- JPower:一个可以快速进入业务开发的后台框架
- erupt 1.6.16 已经发布,通用后台管理框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Programming in Haskell
Graham Hutton / Cambridge University Press / 2007-1-18 / GBP 34.99
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduc......一起来看看 《Programming in Haskell》 这本书的介绍吧!