feat: 保存并展示 PDD 店铺与价格采样信息 (#31)
This commit is contained in:
+31
-18
@@ -8,8 +8,10 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"embed"
|
||||
"flag"
|
||||
"fmt"
|
||||
"html/template"
|
||||
"io/fs"
|
||||
"log"
|
||||
@@ -60,29 +62,40 @@ func main() {
|
||||
log.Printf("数据库已就绪")
|
||||
|
||||
// 3. Web 引擎
|
||||
r := gin.Default()
|
||||
|
||||
// 模板:每个文件用 {{define "目录/名字"}} 声明自己的名字,
|
||||
// 所以一次全部解析进来不会冲突。
|
||||
tmpl, err := template.ParseFS(templateFS, "templates/*/*.html")
|
||||
r, err := newRouter(db)
|
||||
if err != nil {
|
||||
log.Fatalf("解析模板失败: %v", err)
|
||||
log.Fatalf("准备 Web 页面失败: %v", err)
|
||||
}
|
||||
r.SetHTMLTemplate(tmpl)
|
||||
|
||||
// 静态文件
|
||||
staticSub, err := fs.Sub(staticFS, "static")
|
||||
if err != nil {
|
||||
log.Fatalf("准备静态文件失败: %v", err)
|
||||
}
|
||||
r.StaticFS("/static", http.FS(staticSub))
|
||||
|
||||
// 4. 路由
|
||||
web.Register(r, db, config.OnlineThreshold) // 给浏览器的页面
|
||||
api.Register(r, db) // 给 Client 的接口
|
||||
|
||||
log.Printf("Admin 已启动: http://%s", *addr)
|
||||
if err := r.Run(*addr); err != nil {
|
||||
log.Fatalf("启动失败: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
// newRouter 组装 Admin 的模板、静态文件和路由。
|
||||
// 单独提成函数是为了让页面冒烟测试无需真的占用 TCP 端口。
|
||||
func newRouter(db *sql.DB) (*gin.Engine, error) {
|
||||
r := gin.New()
|
||||
r.Use(gin.Logger(), gin.Recovery())
|
||||
|
||||
// 模板:每个文件用 {{define "目录/名字"}} 声明自己的名字,
|
||||
// 所以一次全部解析进来不会冲突。
|
||||
tmpl, err := template.ParseFS(templateFS, "templates/*/*.html")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("解析模板失败: %w", err)
|
||||
}
|
||||
r.SetHTMLTemplate(tmpl)
|
||||
|
||||
// 静态文件
|
||||
staticSub, err := fs.Sub(staticFS, "static")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("准备静态文件失败: %w", err)
|
||||
}
|
||||
r.StaticFS("/static", http.FS(staticSub))
|
||||
|
||||
// 4. 路由
|
||||
web.Register(r, db, config.OnlineThreshold) // 给浏览器的页面
|
||||
api.Register(r, db) // 给 Client 的接口
|
||||
return r, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user