• gin 路由到模板(多应用模式--view为模板存放地址,admin为后台,web为前台)


    main.go文件

    package main
    
    import(
       "github.com/gin-gonic/gin"
       "net/http"
    )
    
    type Article struct {
       Title string
       Content string
    }
    
    func main()  {
       r := gin.Default()
       //r.LoadHTMLFiles()
       //多个框架是加/**/代表目录
       r.LoadHTMLGlob("view/**/*")
       //前端
       r.GET("/", func(c *gin.Context) {
          c.HTML(http.StatusOK,"web/index.html",gin.H{
             "title":"首页sss",
             "sort" : 55,
             "list" : []string{"我是谁","我是我","我是人","我是个好人你信吗?"},
             "newlist":[]interface{}{
               &Article{
                  Title:"新闻标题1",
                  Content:"新闻内容1",
               },
               &Article{
                  Title:"新闻标题2",
                  Content:"新闻内容2",
               },
            },
          })
    
       })
       r.GET("/news", func(c *gin.Context) {
          a:= &Article{
             Title:"新闻标题",
             Content:"新闻内容",
          }
          c.HTML(http.StatusOK,"web/news.html",gin.H{
             "title":"新闻页面",
             "news":a,
          })
    
       })
    
       //后端
       r.GET("/admin", func(c *gin.Context) {
          c.HTML(http.StatusOK,"admin/index.html",gin.H{
             "title":"首页sss",
          })
    
       })
       r.GET("/admin/news", func(c *gin.Context) {
          a:= &Article{
             Title:"新闻标题",
             Content:"新闻内容",
          }
          c.HTML(http.StatusOK,"admin/news.html",gin.H{
             "title":"新闻页面",
             "news":a,
          })
    
       })
    
       r.Run()
    }

    前端对应的模板文件:

    web/index.html

    
    {{ define "web/index.html" }}
    
    
    
    
        
        
        
        document
    
    
        

    {{.title}}

    {{$t := .title}}

    {{$t}}

    {{if ge .sort 60}}
    及格
    {{else}}
    不及格
    {{end}}          {{range $key,$value := .list}}     
  • key=>{{$key}}-----value=>{{$value}}
  •     {{end}}     
             {{range $key,$value := .newlist}}     
  • key=>{{$key}}-----value.Title=>{{$value.Title}}-------value.Content=>{{$value.Content}}
  •     {{else}}         
  • 切片中无数据
  •     {{end}}
    
    
    
    
    {{ end }}
    
    web/news.html
    
    
    {{ define "web/news.html" }}
    
    
    
        
        
        
        document
    
    
        
    WEB

    {{.title}}


    {{.news.Title}}
    {{.news.Content}}
    {{ end }}

    admin/index.html

    
    {{ define "admin/index.html" }}
    
    
    
        
        
        
        document
    
    
        

    {{.title}}

    {{ end }}
  • 相关阅读:
    RocketMQ中生产者发消息前为啥一定要调用start()方法?
    js,jquery,vue设置html标签隐藏不显示
    注解(Annotation)
    10款最佳跨浏览器测试工具,建议收藏
    springboot服务和python服务如何自定义启动banner
    python 异步线程 实现 异步生产 同步通信
    全志T527 CPU测试
    Redis 五大类型源码及底层实现
    【Azure Developer】使用 Microsoft Graph API 获取 AAD User 操作示例
    lombok的介绍
  • 原文地址:https://blog.csdn.net/yqymzj/article/details/126285239