Gin整合template

Gin整合template

主要用到的方法来配置html的目录

router.HTMLRender = gintemplate.New(gintemplate.TemplateConfig{
		Root:      "views/demo",
		Extension: ".html",
	})

内部的结构体

type TemplateConfig struct {
	Root         string           //模板文件所在的根目录
	Extension    string           //模板文件的扩展名
	Master       string           //模板文件的主模板文件名
	Partials     []string         //模板文件的局部模板文件名
	Funcs        template.FuncMap //模板函数映射表
	DisableCache bool             //是否禁用模板缓存
	Delims       Delims           //模板标识符(分隔符)
}

项目目录结构

EntDemo

  • app
    • controller
    • models
    • service
  • routers
    • router.go
    • router_group
      • demo_router.go
  • go.mod
  • start.go
  • views
    • demo
      • demo.html

主要记录配置template

start.go


import (
	"Ent_Demo/ent"
	"Ent_Demo/routers"
	"context"
	"fmt"
	gintemplate "github.com/foolin/gin-template"
	"github.com/gin-gonic/gin"
	_ "github.com/go-sql-driver/mysql"
	"golang.org/x/sync/errgroup"
	"log"
	"net/http"
	"time"
)


func main() {


	var g errgroup.Group
	g.Go(func() error {
		return background().ListenAndServe()
	})
	if err := g.Wait(); err != nil {
		fmt.Println(err)
	}

}

func background() *http.Server {
	gin.SetMode(gin.DebugMode)
	router := routers.InitBackGroundRouter()
	router.HTMLRender = gintemplate.New(gintemplate.TemplateConfig{//配置目录为view/demo文件夹下面
		Root:      "views/demo",
		Extension: ".html",
	})
	server := &http.Server{
		Handler:      router,
		Addr:         ":8100",
		ReadTimeout:  60 * time.Second,
		WriteTimeout: 60 * time.Second,
	}
	return server
}


router.go

package routers

import (
	"Ent_Demo/routers/router_group"
	"github.com/gin-gonic/gin"
	"net/http"
)

func InitBackGroundRouter() *gin.Engine {
	router := gin.Default()
	router.Use(Recover)
	v1 := router.Group("/demo")//路由分组为demo
	router_group.DemoRouter(v1)
	return router
}

func Recover(c *gin.Context) {
	defer func() {
		if r := recover(); r != nil {
			c.JSON(http.StatusOK, gin.H{
				"status": 201,
				"msg":    "error",
				"data":   nil,
			})
			//终止后续接口调用,不加的话recover到异常后,还会继续执行接口里后续代码
			c.Abort()
		}
	}()
	//加载完 defer recover,继续后续接口调用
	c.Next()
}

demo_router.go

package router_group

import (
	"Ent_Demo/app/controller/demo"
	"github.com/gin-gonic/gin"
)

func DemoRouter(v1 *gin.RouterGroup) {
	v1.GET("/helloworld", demo.GetHelloWorld)
	v1.GET("/userlist", demo.GetUserList)
	v1.GET("/allfollowers", demo.GetAllUserWithFollowers)
	v1.POST("/post_user", demo.CreateUser)
	v1.POST("/post_pet", demo.PostPet)
	v1.GET("/demo_test_template", demo.GetTest)
}

demo_controller.go

func GetTest(c *gin.Context) {
	c.HTML(200, "demo", "")//views/demo/demo.html
}

views/demo/demo.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Demo</title>
</head>
<body>
<h1>template.html,测试一下前端页面是否配置好</h1>
</body>
</html>

访问http://localhost:8100/demo/demo_test_template即可

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值