Files
go_blog/main.go

87 lines
1.7 KiB
Go
Raw Normal View History

2023-12-20 16:50:05 +08:00
package main
2024-01-10 16:05:15 +08:00
import (
"flag"
"go_blog/conf"
2024-07-04 19:15:44 +08:00
"go_blog/controllers"
2024-01-10 16:05:15 +08:00
"go_blog/models"
2024-01-22 17:55:16 +08:00
"net/http"
2024-01-10 16:05:15 +08:00
"github.com/gin-gonic/gin"
)
2024-07-04 19:15:44 +08:00
type User struct {
Name string
Gender string
Age int
Password string
PasswordHash []byte
2024-01-10 16:05:15 +08:00
}
var host string
var port string
var isDebugMode bool
var isErrMsg bool
var isOrmDebug bool
2024-07-04 19:15:44 +08:00
const templatePath = "./templates/*"
2024-01-10 16:05:15 +08:00
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()
models.SetUp(isOrmDebug)
}
2023-12-20 16:50:05 +08:00
func main() {
r := gin.Default()
2024-07-04 19:15:44 +08:00
r.LoadHTMLGlob(templatePath)
// 注册WebSocket路由
registerRoutes(r)
r.Run(":8080")
}
func registerRoutes(r *gin.Engine) {
2023-12-20 16:50:05 +08:00
r.GET("/", func(c *gin.Context) {
2024-07-04 19:15:44 +08:00
c.HTML(http.StatusOK, "index.tmpl", nil)
2023-12-20 16:50:05 +08:00
})
2024-01-10 16:05:15 +08:00
2024-07-04 19:15:44 +08:00
user := getUserInfo()
2023-12-20 16:50:05 +08:00
r.GET("/page/:id", func(c *gin.Context) {
id := c.Param("id")
2024-07-04 19:15:44 +08:00
c.HTML(http.StatusOK, "page"+id+".tmpl", map[string]interface{}{
2024-01-10 16:05:15 +08:00
"title": "这个是titile,传入templates中的",
2024-07-04 19:15:44 +08:00
"user": getUserInfo,
2024-01-10 16:05:15 +08:00
})
2023-12-20 16:50:05 +08:00
})
2024-01-10 16:05:15 +08:00
r.GET("/login", func(c *gin.Context) {
c.HTML(200, "login.tmpl", map[string]interface{}{
"title": "这个是titile,传入templates中的",
"user": user,
})
})
2024-07-04 19:15:44 +08:00
r.GET("/ws", controllers.WebSocketHandler)
2024-01-22 17:55:16 +08:00
2024-07-04 19:15:44 +08:00
r.POST("/login", controllers.UsersLoginHandler)
2023-12-20 16:50:05 +08:00
}
2024-01-22 17:55:16 +08:00
2024-07-04 19:15:44 +08:00
func getUserInfo() User {
user := User{
Name: "user",
Gender: "male",
Age: 18,
Password: "nothings",
PasswordHash: []byte("nothings"),
2024-01-22 17:55:16 +08:00
}
2024-07-04 19:15:44 +08:00
return user
2024-01-22 17:55:16 +08:00
}