使用Gin框架构建一个简单的注册登录后台(Go语言)

栏目: Go · 发布时间: 7年前

内容简介:框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。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语言)

注册

使用Gin框架构建一个简单的注册登录后台(Go语言)

客户端反馈结果

使用Gin框架构建一个简单的注册登录后台(Go语言)

注册失败

登录:

使用Gin框架构建一个简单的注册登录后台(Go语言)

登录

使用Gin框架构建一个简单的注册登录后台(Go语言)

登录成功


以上所述就是小编给大家介绍的《使用Gin框架构建一个简单的注册登录后台(Go语言)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

企业应用架构模式

企业应用架构模式

Martin Fowler、王怀民、周斌 / 王怀民、周斌 / 机械工业出版社 / 2004-7 / 49.00元

本书作者是当今面向对象软件开发的权威,他在一组专家级合作者的帮助下,将40多种经常出现的解决方案转化成模式,最终写成这本能够应用于任何一种企业应用平台的、关于解决方案的、不可或缺的手册。本书获得了2003年度美国软件开发杂志图书类的生产效率奖和读者选择奖。本书分为两大部分。第一部分是关于如何开发企业应用的简单介绍。第二部分是本书的主体,是关于模式的详细参考手册,每个模式都给出使用方法和实现信息,并一起来看看 《企业应用架构模式》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具