一、主函数
package main import ( "fmt" "github.com/gin-gonic/gin" "mysql-manager/db" "net/http" ) //函数 func Create_Tables(c *gin.Context) { c.String(http.StatusOK, fmt.Sprintf("create数据表")) } func Delete_Tables(c *gin.Context) { c.String(http.StatusOK, fmt.Sprintf("delete数据表")) } func main() { //连接数据库 Table := &db.StuManager{} db.Mysql_Link(Table) //开启gin框架 route := gin.Default() //加载前端页面 route.LoadHTMLGlob("templates/*") //创建路由分组 create := route.Group("/create") { create.POST("/user", db.Create_User) create.GET("/tables", db.Create_Tables) } //删除路由分组 delete := route.Group("/delete") { delete.GET("/user", db.Delete_User) delete.GET("/tables", Delete_Tables) } //查询路由分组 query := route.Group("/query") { query.GET("/user", db.Query_User) query.GET("/tables", Delete_Tables) } //启动 route.Run(":8888") // 端口号8888 }
二、 db包
package db import ( "fmt" "github.com/gin-gonic/gin" "github.com/jinzhu/gorm" _ "github.com/jinzhu/gorm/dialects/mysql" "net/http" "time" ) //表结构 type StuManager struct { ID uint `gorm:"primaryKey"` Name string `gorm:"USER_NAME,type:varchar(256);not null;" binding:"required"` Gender string `gorm:"GENDER;not null;" binding:"required"` Age uint8 `gorm:"AGE;not null;" binding:"required"` CreatedAt time.Time `gorm:"column:created_at;type:datetime"` UpdateTime time.Time `gorm:"autoCreateTime"` } //创建用户接口 func Create_User(c *gin.Context) { Table := &StuManager{} db := Mysql_Link(Table) //接收POST请求数据 if err := c.Bind(&Table); err != nil { c.String(http.StatusBadRequest, "Invalid request: %v", err) return } //创建用户数据 if err := db.Create(&Table).Error;err != nil{ c.String(http.StatusBadRequest, "Invalid request: %v", err) return }else { c.String(http.StatusBadRequest, "创建用户成功") } } //查询用户数据 func Query_User(c *gin.Context) { Table := &StuManager{} db := Mysql_Link(Table) name := c.Query("name") db.Where("name = ?",name).First(Table); c.String(http.StatusOK, fmt.Sprintf("ID: %d, Name: %s, Age: %d\n",Table.ID,Table.Name,Table.Age)) } //删除用户数据 func Delete_User(c *gin.Context) { Table := &StuManager{} db := Mysql_Link(Table) name := c.Query("name") db.Where("name = ?",name).Delete(Table); //fmt.Printf("ID: %d, Name: %s, Age: %d\n",Table.ID,Table.Name,Table.Age) c.String(http.StatusOK, fmt.Sprintf("delete用户")) } //返回前端页面 func Create_Tables(c *gin.Context) { c.HTML(http.StatusOK, "index.html",gin.H{ "s1": "s1", }) } //连接数据库 func Mysql_Link(Any *StuManager) *gorm.DB { db, err := gorm.Open("mysql", "root:newpassword@tcp(10.0.0.11:3306)/gorm?charset=utf8&parseTime=True&loc=Local") //defer db.Close() if err != nil { panic("failed to connect database") } //创建表,如果表不存在就创建表 db.AutoMigrate(Any) return db }
三、前端页面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h3>用户注册</h3> <form action="http://127.0.0.1:8888/create/user" method="post"> <p><label for="user">姓名</label>: <input type="text" name="Name" id="user"></p> <p>密码: <input type="password" name="Age"></p> <p>爱好: <input type="checkbox" name="hobby" value="basketball">篮球 <input type="checkbox" name="hobby" value="football">足球 </p> <p>性别: <input type="radio" name="Gender" value="men">男 <input type="radio" name="Gender" value="female">女 <input type="radio" name="Gender" value="qita">其他 </p> <p>生日:<input type="date" name="cc"></p> <p>籍贯: <select name="province" id="" multiple size="2"> <option value="">广东省</option> <option value="" selected>山东省</option> <option value="">河北省</option> </select> </p> <p> <textarea name="" id="" cols="30" rows="10" placeholder="个人简介"></textarea> </p> <div> <p><input type="reset" value="重置"></p> <p><input type="button" value="普通按钮"></p> <p><button>普通按钮</button></p> <p><input type="submit" value="提交"></p> </div> </form> </body> </html>
有问题请加博主微信进行沟通!
全部评论