分享
  1. 首页
  2. 文章

Golang中gorm+gin的简单使用

小小程序员Eric · · 4059 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

自己做记录,方便查看

 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

查看原文:Golang中gorm+gin的简单使用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
4059 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏