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 }