日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Go 语言框架 Gin 练习2

發布時間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 语言框架 Gin 练习2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

文章目錄

  • 目錄
  • 1 介紹
  • 2 練習
  • 友情援助

1 介紹

Gin是一個golang的微框架,封裝比較優雅,API友好,源碼注釋比較明確,具有快速靈活,容錯方便等特點

對于golang而言,web框架的依賴要遠比Python,Java之類的要小。自身的net/http足夠簡單,性能也非常不錯

借助框架開發,不僅可以省去很多常用的封裝帶來的時間,也有助于團隊的編碼風格和形成規范.

2 練習

本次練習主要在上一次代碼的基礎上進行了進一步的優化,
對源代碼進行了層次分離。
整體目錄結構如圖:
## 2.1 主代碼

// main.go package mainimport (//"GINVUE/Controller"//"GINVUE/Model""GINVUE/common""github.com/gin-gonic/gin"_ "github.com/go-sql-driver/mysql"//"github.com/jinzhu/gorm" )func main() {//gin.SetMode(gin.ReleaseMode)db := common.InitDB()defer db.Close()r := gin.Default()panic(r.Run())}

主函數,主要調用了一個GIn的默認web服務器實例,
并將其運行,開始監聽。

package commonimport ("fmt""GINVUE/Model""github.com/jinzhu/gorm" )var DB *gorm.DBfunc InitDB() *gorm.DB {driverName := "mysql"host := "localhost"port := "3306"database := "test"username := "root"password := ""charset := "utf8"args := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=%s&parseTime=true",username,password,host,port,database,charset)db, err := gorm.Open(driverName, args)if err != nil {panic("failed to connect database!,err:" + err.Error())}db.AutoMigrate(&Model.User{})DB = dbreturn db} func GetDB() *gorm.DB {return DB }

common 包的database文件,主要實現了,初始化一個數據庫和獲得一個數據實例等操作。

package Controllerimport ("GINVUE/Model""GINVUE/common""GINVUE/util""log""net/http""github.com/gin-gonic/gin""github.com/jinzhu/gorm" )func Register(ctx *gin.Context) {db := common.GetDB()//獲取參數name := ctx.PostForm("name")telephone := ctx.PostForm("telephone")password := ctx.PostForm("password")//數據驗證if len(telephone) != 11 {ctx.JSON(http.StatusUnprocessableEntity,gin.H{"code": 422, "msg": "手機號必須為11位"})return}if len(password) < 6 || len(password) > 11 {ctx.JSON(http.StatusUnprocessableEntity,gin.H{"code": 422, "msg": "密碼必須大于6位且小于11位"})return}//if len(name) == 0 {name = util.RandomString(10)}log.Println(name, telephone, password)//判斷手機號是否存在if util.IsTelephoneExist(db, telephone) {ctx.JSON(http.StatusUnprocessableEntity,gin.H{"code": 422, "msg": "該用戶已經注冊"})return}//創建用戶newUser := Model.User{Name: name,Telephone: telephone,Password: password,}db.Create(&newUser)//返回結果ctx.JSON(200, gin.H{"message": "注冊成功",})return }

Controller 包,主要實現路由管理,目前只有一個注冊路由處理函數,
后續還會有登陸等等。

package Modelimport "github.com/jinzhu/gorm"type User struct {gorm.ModelName string `gorm:"type:varchar(20);not null"`Telephone string `gorm:"varchar(11);not null"`Password string `gorm:"size:255"` }

Model 包主要定義了數據庫存儲對象原型。

package utilimport ("math/rand""time" )func RandomString(n int) string {var letters = []byte("qwertyuiopasdfghjklxzvbnmQQERTYUOIOPASDFGHJKLZXCVBNM")result := make([]byte, n)rand.Seed(time.Now().Unix())for i := range result {result[i] = letters[rand.Intn(len(letters))]}return string(result) } func IsTelephoneExist(db *gorm.DB, telephone string) bool {var user Model.Userdb.Where("telephone=?", telephone).First(&user)if user.ID != 0 {return true}return false }

util 包主要提供了一些通用的功能代碼。

package mainimport ("GINVUE/Controller""github.com/gin-gonic/gin" ) func CollectRouter(r *gin.Engine) *gin.Engine {r.POST("/api/auth/register", Controller.Register)r.POST("/api/auth/login", Controller.Login)return r }

main包的第二個函數,負責管理路由。

友情援助

有問題的可以關注公眾號,博主會在24小時內回復。

總結

以上是生活随笔為你收集整理的Go 语言框架 Gin 练习2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: av中文字幕在线看 | 91成人在线观看高潮 | 蜜乳av一区二区三区 | 美女色综合 | 中文字幕一区二区不卡 | 看免费一级片 | 中文字幕在线播放一区 | 中文字幕av专区dvd | 新超碰在线 | 欧美精品一区二区三区视频 | 国产高清一 | 尤物在线免费观看 | 三级免费观看 | 日本在线视频观看 | 午夜偷拍福利视频 | h片在线观看免费 | 黄色大片在线免费观看 | 精品成人久久久 | 日韩中文电影 | 亚洲美女自拍偷拍 | 四级黄色片 | 青青伊人久久 | 影音先锋中文字幕人妻 | 免费看黄在线 | 一区二区三区偷拍 | 亚洲情热 | 亚洲大片在线观看 | 国产女人水真多18毛片18精品 | 99久久人妻无码精品系列 | 成年免费在线观看 | 欧美成人精品一区二区三区在线看 | 日本欧美不卡 | 久久久久一 | 国产精品爱啪在线线免费观看 | 伊人论坛 | 成人在线小视频 | 99er在线| 午夜老湿机| 国产毛片a级 | 欧美一区二区大片 | 一二三区视频 | 亚洲成人黄色小说 | 黄色精品一区二区 | 亚洲在线国产 | 粉嫩视频在线观看 | 国产又粗又猛视频免费 | 在线免费一区二区 | 国产成人精品影院 | 精品播放 | 日本精品99 | 五月天婷婷久久 | 精品视频一区二区三区四区五区 | 可以免费看污视频的网站 | 午夜高清视频 | 91草视频 | 日韩精品在线视频观看 | 欧美一级片在线 | 久久99色| 91亚洲国产成人精品性色 | 东北少妇不戴套对白第一次 | 欧美福利视频在线 | 亚洲黄色三级 | 亚洲经典自拍 | 无码人妻精品一区二区中文 | 艳情五月 | 日出白浆视频 | 丁香色欲久久久久久综合网 | 国产精品午夜久久 | 欧美成人午夜免费视在线看片 | 18禁免费无码无遮挡不卡网站 | 国产成人主播 | 少妇又紧又色又爽又刺激 | 一级片视频免费观看 | 私密视频在线观看 | 中文字幕在线免费视频 | 熟女少妇精品一区二区 | 午夜大片| 成人夜间视频 | 日本一区二区在线看 | 一区二区三区免费观看视频 | 日av中文字幕 | 成人av网站在线播放 | 国产精品国产三级国产Av车上的 | 欧美一区在线视频 | 午夜精品免费观看 | 中文字幕日韩精品在线观看 | 日本中文字幕影院 | 亚洲欧洲日本国产 | 中文字幕999| 欧美一级片一区 | 妹子干综合网 | 丰满圆润老女人hd | 久久久久久久亚洲 | 李华月全部毛片 | 粉嫩av一区| 天天摸天天看 | 亚州av| 成人wwxx免费观看 | 激情综合五月 |