GO web开发日记(1)

最近学习了一下go web开发,打算随便写点东西练一练,这个是今天利用gin+xorm写的,可以实现数据库增删改,还没怎么完善,全当学习。。。

 AllRunMain.go

package main

import (
	"fmt"
	"github.com/gin-gonic/gin"
	"github.com/thinkerou/favicon"
)

func main() {
	ginServer := gin.Default()
	ginServer.Use(favicon.New("./favicon.ico"))
	ginServer.LoadHTMLGlob("templates/*")
	ginServer.Static("/static", "./static")
	ginServer.GET("", IndexWelcome)
	ginServer.POST("/users", CreateUser)
	if err := ginServer.Run(":8800"); err != nil {
		fmt.Println("端口冲突")
	}
}

sqlWebFunc.go

package main

import (
	"github.com/gin-gonic/gin"
	"go-web-sql/demoSql"
	"net/http"
)

func IndexWelcome(context *gin.Context) {
	context.HTML(http.StatusOK, "index.html", "./index.html")
}

func CreateUser(c *gin.Context) {
	c.BindJSON(&demoSql.Guest)
	demoSql.Check()
	c.JSON(http.StatusOK, gin.H{
		"Name":      &demoSql.Guest.Name,
		"Passwd":    &demoSql.Guest.Passwd,
		"Age":       &demoSql.Guest.Age,
		"ChooseNum": &demoSql.Guest.ChooseNum,
	})
}

demoSql.go

package demoSql

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"xorm.io/xorm"
)

func CheckSqlMain() {
	var user User
	//构建数据库连接信息
	dataSourceName := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s", userName, password, ipAddress, port, dbName, charset)
	//xorm.NewEngine 创建引擎
	engine, err := xorm.NewEngine("mysql", dataSourceName)
	if err != nil {
		fmt.Println("连接失败数据库")
	}
	if err = engine.Sync(new(User)); err != nil {
		panic(err)
	}
	session := engine.NewSession()
	defer func() {
		err := recover()
		if err != nil {
			session.Rollback()
		} else {
			session.Commit()
		}
	}()
	if err = session.Begin(); err != nil {
		panic(err)
	}
	switch {
	case IncomingS().ChooseNum == 1:
		if _, err := session.Insert(IncomingS()); err != nil {
			panic(err)
		}
	case IncomingS().ChooseNum == 2:
		if _, err := session.Where("name = ?", IncomingS().Name).Delete(&user); err != nil {
			panic(err)
		}
	case IncomingS().ChooseNum == 3:
		if _, err := session.Where("name = ?", IncomingS().Name).Update(IncomingS()); err != nil {
			panic(err)
		}
	}
}

sqlCheck.go

package demoSql

import (
	"fmt"
)

func Check() {
	if IncomingS().Name == "" || IncomingS().ChooseNum == 0 {
		fmt.Println("错误检查需要输入的参数")
	} else {
		CheckSqlMain()
	}
}

typeThing.go

package demoSql

import (
	"time"
)

type User struct {
	Id        int64
	Name      string
	Age       int
	Passwd    string    `xorm:"varchar(200)"`
	Created   time.Time `xorm:"created"`
	Updated   time.Time `xorm:"updated"`
	ChooseNum int
}

var (
	Guest     User
	userName  = "root"
	password  = "123456"
	ipAddress = "127.0.0.1"
	port      = 3306
	dbName    = "demoWebSql"
	charset   = "utf8mb4"
)

func Incoming(userName string, age int, passwd string, chooseNum int) User {
	IncomingValue := User{Name: userName, Age: age, Passwd: passwd, ChooseNum: chooseNum}
	return IncomingValue
}
func IncomingS() User {
	IncomingValueS := Incoming(Guest.Name, Guest.Age, Guest.Passwd, Guest.ChooseNum)
	return IncomingValueS
}

style.css

body{
    background: bisque;
}

common.js

alert("文")

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>GO-Web-SQL开发 by 文</title>
    <link rel="stylesheet" href="/static/css/style.css">
    <script src="/static/js/common.js"></script>
</head>
<body>
<h1>GO-Web-SQL开发 by 文</h1>
</body>
</html>

效果:

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值