使用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语言)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

科技投资新时代:TMT投资方法、趋势与热点聚焦

科技投资新时代:TMT投资方法、趋势与热点聚焦

马军、宋辉、段迎晟 / 人民邮电出版社 / 2018-3 / 69.00

中国 TMT 行业(科技、媒体及通信)起步较晚但充满朝气。2017 年,TMT 板块的IPO 数量占到了总数的四分之一;对于投资者来说,投资 TMT 的收益非常可观。那么,TMT 的投资趋势如何? TMT 行业又有哪些投资热点? 本书立足于 TMT 投资现状,在介绍了 TMT 投资的基本概念之后,作者详细讲述了TMT 投资的基本研究方法、分析视角、整体行情及趋势分析,同时从行业视角分析了包括......一起来看看 《科技投资新时代:TMT投资方法、趋势与热点聚焦》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

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

HEX HSV 互换工具