Files
go_blog/main.go
2024-07-24 04:19:01 +08:00

88 lines
1.7 KiB
Go

package main
import (
"flag"
"go_blog/conf"
"go_blog/controllers"
"go_blog/models"
"net/http"
"github.com/gin-gonic/gin"
)
type User struct {
Name string
Gender string
Age int
Password string
PasswordHash []byte
}
var host string
var port string
var isDebugMode bool
var isErrMsg bool
var isOrmDebug bool
const templatePath = "./templates/*"
func init() {
flag.StringVar(&host, "h", "127.0.0.1", "主机")
flag.StringVar(&port, "p", "", "监听端口")
flag.BoolVar(&isDebugMode, "debug", true, "是否开启debug")
flag.BoolVar(&isErrMsg, "err", true, "是否返回错误信息")
flag.BoolVar(&isOrmDebug, "orm", true, "是否开启gorm的debug信息")
flag.Parse()
conf.SetUp()
conf.SetUp1()
models.SetUp(isOrmDebug)
}
func main() {
r := gin.Default()
r.LoadHTMLGlob(templatePath)
// 注册WebSocket路由
registerRoutes(r)
r.Run(":8080")
}
func registerRoutes(r *gin.Engine) {
r.GET("/", func(c *gin.Context) {
c.HTML(http.StatusOK, "index.tmpl", nil)
})
user := getUserInfo()
r.GET("/page/:id", func(c *gin.Context) {
id := c.Param("id")
c.HTML(http.StatusOK, "page"+id+".tmpl", map[string]interface{}{
"title": "这个是titile,传入templates中的",
"user": getUserInfo,
})
})
r.GET("/login", func(c *gin.Context) {
c.HTML(200, "login.tmpl", map[string]interface{}{
"title": "这个是titile,传入templates中的",
"user": user,
})
})
r.GET("/ws", controllers.WebSocketHandler)
r.POST("/login", controllers.UsersLoginHandler)
}
func getUserInfo() User {
user := User{
Name: "user",
Gender: "male",
Age: 18,
Password: "nothings",
PasswordHash: []byte("nothings"),
}
return user
}