GO语言编写-学生信息管理系统

417人浏览 / 0人评论

一、主函数

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>

全部评论