golang项目实战2023/03/21

初始化项目


首先建立一个文件夹在文件夹下面建一个main.go文件

执行初始化命令行

go mod init page  // page 为自己的项目名称
go mod tidy  

安装框架
go get gorm.io/gorm // gorm
go get gorm.io/driver/mysql // 这里是用的sql数据库
go get -u github.com/gin-gonic/gin // 这里用的是gin框架

搭建基本目录


golang项目实战2023/03/21_第1张图片

common // 公用方法

config // 配置

models // 方法包

router // 请求路由包

service //

sql // 数据库包

test // 测试包

go.mod // 架包

go.sum // 产生的架包

main.go // 入口文件

链接数据库


这里先在测试包里连接 并且 在models包中建用户类

golang项目实战2023/03/21_第2张图片
package models

import (
    "gorm.io/gorm"
)

type UserBasic struct {
    gorm.Model
    Name          string
    PassWord      string
    Phone         string
    Email         string
    Identiy       string
    ClientIp      string
    ClientPort    string
    LoginTime     string
    HeartbeatTime uint64
    LogOutTime    uint64
    IsLoginout    bool
    DeviceInfo    string
}

func (table *UserBasic) TableName() string {
    return "user_basic"
}
golang项目实战2023/03/21_第3张图片
golang项目实战2023/03/21_第4张图片
package main

import (
    "fmt"
    "ginchat/models"

    "gorm.io/driver/mysql"
    "gorm.io/gorm"
)

func main() {
    db, err := gorm.Open(mysql.Open("root:1234@tcp(127.0.0.1:3306)/ginchat?charset=utf8mb4&parseTime=True&loc=Local"), &gorm.Config{})
    if err != nil {
        panic("failed to connect database")
    }
    // 迁移 schema
    db.AutoMigrate(&models.UserBasic{})

    // create
    user := &models.UserBasic{}
    user.Name = "小哪吒"
    db.Create(user)

    // read
    fmt.Println(db, db.First(user))

    // updata
    db.Model(user).Update("PassWord", "1234")
}

拆分gin路由


拆分成router 和main 和 service三个包进行配置

main.go

package main

import (
    "ginchat/router"
)

func main() {
    r := router.Router()
    r.Run(":8081") // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080")
}

service/index.go文件

package service

import "github.com/gin-gonic/gin"

func GetIndex(c *gin.Context) {
    c.JSON(200, gin.H{
        "message": "welcome",
    })
}

router/app.go文件

package router

import (
    "ginchat/service"

    "github.com/gin-gonic/gin"
)

func Router() *gin.Engine {
    r := gin.Default()
    r.GET("/index", service.GetIndex)
    return r
}

基本框架已搭建完成

你可能感兴趣的:(golang,开发语言,后端)