gorm/gin框架实战
项目简介
学习源视频:【最新Go Web开发教程】基于gin框架和gorm的web开发实战 (七米出品)_哔哩哔哩_bilibili
本博客为我的学习笔记。
项目目标:实现一个备忘录工具(当然不支持alert),仅仅是可以记录待办事项。
实现了:添加待办项、删除待办项、完成待办项、查询待办项
项目主页展示:
添加、查询待办项展示:
删除待办项展示:
项目框架
可以看看之前同专栏的博客,这是一个很基本的框架
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
"net/http"
)
type Todo struct {
ID int `json:"id"`
Title string `json:"title"`
Status bool `json:"status"`
}
var (
DB *gorm.DB
)
func initMySQL() (err error) {
}
func main() {
//连接数据库
err := initMySQL()
if err != nil {
panic(err)
}
defer DB.Close() //关闭数据库连接
//模型绑定
DB.AutoMigrate(&Todo{
})
r := gin.Default()
//设置静态资源文件
r.Static("/static", "static")
// 设置gin框架模版文件
r.LoadHTMLGlob("templates/*")
//设置路由
r.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.html", nil)
})
//设置路由组
v1Group := r.Group("/v1")
{
//添加一个事项
v1Group.POST("/todo", func(c *gin.Context) {
})
//查看一个事项
v1Group.GET("/todo/:id", func(c *gin.Context) {
})
//查看所有事项
v1Group.GET("/todo/", func(c *gin.Context) {
})
//修改一个事项
v1Group.PUT("/todo/:id", func(c *gin.Context) {
})
//删除一个事项
v1Group.DELETE("/todo/:id", func(c *gin.Context) {
})
}
r.Run()
}
接口填充
数据库连接
DB, err = gorm.Open("mysql", "usr1:12345@tcp(***:3306)/db1?charset=utf8&parseTime=True&loc=Local")
if err != nil {
panic(err)
}
return DB.DB().Ping()
添加一个事项
v1Group.POST("/todo", func(c *gin.Context) {
//前端页面填写待办事项,点击提交,会发送请求到这