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

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

内容简介:框架一直是敏捷开发中的利器,能让开发者很快的上手并做出应用,甚至有的时候,脱离了框架,一些开发者都不会写程序了。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语言)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

Programming in Haskell

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》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码