为了账号安全,请及时绑定邮箱和手机立即绑定

Golang中gorm+gin的简单使用

标签:
Go

自己做记录,方便查看

    package main    
    import (        "fmt"
        "github.com/gin-gonic/gin"
        _ "github.com/go-sql-driver/mysql"
        "github.com/jinzhu/gorm"
    )
    
    type User struct {
        Id       int    `json:"id",gorm:"auto-increment"`
        Name     string `json:"name"`
        Tel      string `json:"tel"`
        Password string `json:"password"`
    }
    
    type ResponseData struct {
        Code    int         `json:"code"`
        Status  string      `json:"status"`
        Message string      `json:"message"`
        Data    interface{} `json:"data"`
    }
    
    var db *gorm.DB
    var err error
    
    func main() {        // db
        db, err = gorm.Open("mysql", "root:03140314@/golang_test?charset=utf8&parseTime=True&loc=Local")
        checkErr()        //db.SingularTable(true)
        db.AutoMigrate(&User{})
        defer db.Close()        // http
        router := gin.Default()
        v1 := router.Group("/api/v1")
        {            // user
            v1.POST("/user/login", login)
            v1.POST("/user/register", register)
            v1.GET("/user/get_info", getUserInfo)
        }
        router.Run()
    }
    
    func checkErr() {        if err != nil {
            fmt.Println(err)
            err = nil
        }
    }    
    // post form
    func login(c *gin.Context) {        // 获取表单数据 tel,password
        tel := c.PostForm("tel")
        psd := c.PostForm("password")        if len(tel) == 0 || len(psd) == 0 {
            response := ResponseData{
                Code:    50001,
                Status:  "error",
                Message: "账号或密码不能为空",
                Data:    "",
            }
            c.JSON(200, response)
        } else {
            var user User
            db.Where("tel=?", tel).First(&user)            if user.Tel == "" {
                response := ResponseData{
                    Code:    50001,
                    Status:  "error",
                    Message: "用户不存在",
                    Data:    "",
                }
                c.JSON(200, response)
            } else {                if user.Password == psd {
                    response := ResponseData{
                        Code:    200,
                        Status:  "success",
                        Message: "登录成功",
                        Data:    "",
                    }
                    c.JSON(200, response)
                } else {
                    response := ResponseData{
                        Code:    5001,
                        Status:  "error",
                        Message: "密码错误",
                        Data:    "",
                    }
                    c.JSON(200, response)
                }
            }
        }
    }    
    // post form
    func register(c *gin.Context) {
        tel := c.PostForm("tel")
        psd := c.PostForm("password")        if len(tel) == 0 || len(psd) == 0 {
            response := ResponseData{
                Code:    50001,
                Status:  "error",
                Message: "账号或密码不能为空",
                Data:    "",
            }
            c.JSON(200, response)            return
        }
        var user User
        db.Where("tel=?", tel).First(&user)        if user.Tel == tel {
            response := ResponseData{
                Code:    50001,
                Status:  "error",
                Message: "手机号已注册",
                Data:    "",
            }
            c.JSON(200, response)
        } else {
            newUser := User{Tel: tel, Password: psd}
            db.Create(&newUser)
            response := ResponseData{
                Code:    200,
                Status:  "success",
                Message: "注册成功",
                Data:    "",
            }
            c.JSON(200, response)
        }
    }    
    // get url
    func getUserInfo(c *gin.Context) {
        id := c.Query("id")        if id == "" {
            response := ResponseData{
                Code:    50001,
                Status:  "error",
                Message: "参数错误",
                Data:    "",
            }
            c.JSON(200, response)            return
        }
        var user User
        db.First(&user, id)        if user.Id > 0 {
            response := ResponseData{
                Code:    200,
                Status:  "success",
                Message: "",
                Data:    user,
            }
            c.JSON(200, response)
        } else {
            response := ResponseData{
                Code:    50001,
                Status:  "error",
                Message: "用户不存在",
                Data:    "",
            }
            c.JSON(200, response)
        }
    }



作者:小小程序员Eric
链接:https://www.jianshu.com/p/149e4abb6def


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
205
获赞与收藏
1008

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消