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框架

搭建基本目录


common // 公用方法

config // 配置

models // 方法包

router // 请求路由包

service //

sql // 数据库包

test // 测试包

go.mod // 架包

go.sum // 产生的架包

main.go // 入口文件

链接数据库


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

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"
}
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
}

基本框架已搭建完成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李宏伟~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值