Gin答题系统项目实战

Gin答题系统项目实战

项目目的:

熟悉开发流程 ,熟练相关技术栈 gin+GORM+swagger + logrus auth 等中间件

环境搭建:

go version go1.17.8 windows/amd64

set GO111MODULE=on

go mod init go_exam

go  mod tidy

1:引入GORM

Go Packages 搜到 GORM

GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly. 中文API

首先 直接用快速开始的代码改

go get -u gorm.io/gorm
go get -u gorm.io/driver/mysql


package main

import (
gorm.io/gorm
gorm.io/driver/sqlite
)

type Product struct {
gorm.Model
Code string
Price uint
}

func main() {
db, err := gorm.Open(sqlite.Open(“test.db”), &gorm.Config{})
if err != nil {
panic(“failed to connect database”)
}

// 迁移 schema
db.AutoMigrate(&Product{})

// Create
db.Create(&Product{Code: “D42”, Price: 100})

// Read
var product Product
db.First(&product, 1) // 根据整型主键查找
db.First(&product, “code = ?”, “D42”) // 查找 code 字段值为 D42 的记录

// Update - 将 product 的 price 更新为 200
db.Model(&product).Update(“Price”, 200)
// Update - 更新多个字段
db.Model(&product).Updates(Product{Price: 200, Code: “F42”}) // 仅更新非零值字段
db.Model(&product).Updates(map[string]interface{}{“Price”: 200, “Code”: “F42”})

// Delete - 删除 product
db.Delete(&product, 1)
}
查看数据库是否正常

用户模块struct设计
再写一个 struct UserBasic.go

package models

import “gorm.io/gorm

type UserBasic struct {
gorm.Model //4个字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我们来讲一下如何使用Gin框架进行项目实战。 首先,我们需要安装Gin框架。可以使用以下命令进行安装: ``` go get -u github.com/gin-gonic/gin ``` 接下来,我们可以创建一个简单的web服务。在这个例子中,我们将创建一个API,用于获取用户信息。我们将使用以下代码: ```go package main import ( "net/http" "github.com/gin-gonic/gin" ) type User struct { Name string `json:"name"` Email string `json:"email"` } func main() { router := gin.Default() router.GET("/users/:id", func(c *gin.Context) { id := c.Param("id") user := User{ Name: "John Doe", Email: "[email protected]", } c.JSON(http.StatusOK, gin.H{ "id": id, "user": user, }) }) router.Run(":8080") } ``` 在这个例子中,我们定义了一个User结构体和一个处理路由的函数。当我们访问/users/:id路由时,会返回一个JSON格式的响应,包含用户的信息。 接下来,我们可以使用PostgreSQL数据库来存储和检索用户信息。我们可以使用以下代码连接到PostgreSQL: ```go package main import ( "database/sql" "log" "net/http" "github.com/gin-gonic/gin" _ "github.com/lib/pq" ) type User struct { ID int `json:"id"` Name string `json:"name"` Email string `json:"email"` } func main() { db, err := sql.Open("postgres", "user=postgres password=postgres dbname=postgres sslmode=disable") if err != nil { log.Fatalln(err) } router := gin.Default() router.GET("/users/:id", func(c *gin.Context) { id := c.Param("id") var user User err := db.QueryRow("SELECT id, name, email FROM users WHERE id = $1", id).Scan(&user.ID, &user.Name, &user.Email) if err != nil { log.Println(err) c.JSON(http.StatusInternalServerError, gin.H{ "error": "Internal server error", }) return } c.JSON(http.StatusOK, gin.H{ "id": id, "user": user, }) }) router.Run(":8080") } ``` 在这个例子中,我们在路由处理函数中查询了一个名为users的表,该表包含用户的信息。我们使用`github.com/lib/pq`库来连接到PostgreSQL数据库。 以上就是使用Gin框架进行项目实战的基本流程。当然,具体的项目实战过程中,需要根据具体需求进行更加详细的开发

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值