go语言中前端模板的使用

这篇具有很好参考价值的文章主要介绍了go语言中前端模板的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、配置直接加载静态目录

  • 1、项目中创建一个文件夹为assets来存放静态目录(图片、cssjs)

  • 2、在main.go文件中添加以下代码

    package main
    
    import "net/http"
    
    func main() {
    	http.Handle("/assets/", http.FileServer(http.Dir(".")))
    
    	http.ListenAndServe(":8080", nil)
    }
    
  • 3、直接在浏览器上输入http://localhost:8080/assets/1122.jpg就可以访问静态目录的文件

  • 4、如果在gin中使用呢

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    	"net/http"
    )
    
    func main() {
    	router := gin.Default()
    	router.StaticFS("/assets/", http.Dir("./assets"))
    	router.Run(":8080")
    }
    

二、模板渲染

  • 1、在项目中创建一个views的文件,并且里面存放html模板

  • 2、创建一个通用的模板渲染方法

    func RegisterView() {
    	// 一次性解析出全部的模板
    	tpl, err := template.ParseGlob("views/**/*")
    	if err != nil {
    		log.Fatal("解析模板出错" + err.Error())
    	}
    	for _, item := range tpl.Templates() {
    		templateName := item.Name()
    		fmt.Println("当前模板名称:" + templateName)
    		http.HandleFunc(templateName, func(writer http.ResponseWriter, request *http.Request) {
    			err := tpl.ExecuteTemplate(writer, templateName, nil)
    			if err != nil {
    				log.Fatal("渲染模板失败:" + err.Error())
    			}
    		})
    	}
    }
    
  • 3、直接使用

    func main() {
    	http.Handle("/assets/", http.FileServer(http.Dir(".")))
    	// 全局注册模板渲染器
    	RegisterView()
    
    	http.ListenAndServe(":8080", nil)
    }
    
  • 4、在view/user/login.html文件中添加前端代码

    {{define  "/user/login.html"}}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>登录</h1>
    </body>
    </html>
    {{end}}
    
  • 5、浏览器上输入地址http://localhost:8080/user/login.html

  • 6、在gin中渲染模板

    package main
    
    import (
    	"github.com/gin-gonic/gin"
    	"net/http"
    )
    
    func main() {
    	router := gin.Default()
        router.StaticFS("/assets/", http.Dir("./assets"))
    	router.LoadHTMLGlob("views/**/*")
    	router.GET("/user/register", func(ctx *gin.Context) {
    		ctx.HTML(http.StatusOK, "register.html", nil)
    	})
    	router.Run(":8080")
    }
    
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>注册页面</h1>
    <img src="/assets/1122.jpg" />
    </body>
    </html>
    
  • 7、页面访问http://localhost:8080/user/register

三、公共模板的嵌套

  • 1、原生中使用

    {{define  "/user/login.html"}}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>登录</h1>
    {{template "/user/test1.html"}}
    </body>
    </html>
    {{end}}
    
  • 2、在gin文章来源地址https://www.toymoban.com/news/detail-476884.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>注册页面</h1>
    <img src="/assets/1122.jpg" />
    {{template "/user/test2.html"}}
    </body>
    </html>
    
    {{ define "/user/test2.html" }}
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>测试</h1>
    </body>
    </html>
    {{end}}
    

到了这里,关于go语言中前端模板的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • go语言模板处理包text/template详解

     本文对go语言内置模板处理包\\\"text/template\\\"常用操作汇总进行了详解,非常全面,一次搞定你的问题!还不收藏等啥呢! 目录 通用结构体定义 通用转换 1,基础操作 2,解析文件 3,自定义函数调用 4,循环遍历 5,语句、运算符、函数 6,变量与操作符

    2024年01月25日
    浏览(46)
  • GO富集绘图绘制方法,零基础教程,替换数据直接作图,完成版R语言脚本

    本期分享一个快速绘制GO富集结果图的方法,主要使用R语言tidyverse包,只需导入数据即可一步出图,可以自定义显示的数目、颜色、筛选参数, 从此以后绘制GO富集图只需1秒 。 下面是一个GO富集分析的结果数据表: ID:表示具体的GO条目 Description:GO条目的描述 RatioF:分子是

    2024年02月12日
    浏览(43)
  • Go语言项目后端使用gin框架接收前端发送的三种格式数据(form-data,json,Params)

    使用gin框架的BindJSON方法,将前端的json格式数据将后端的结构体相绑定,从而获取到前端所发送的数据,并返回给前端 1.将前端发送过来的数据全部返回 2.将前端发送过来的json格式数据选择性返回   使用gin框架的PostForm方法,从而获取到前端form格式的参数 使用gin框架中的

    2024年02月01日
    浏览(102)
  • 【2023年电赛国一必备】E题报告模板--可直接使用

    通过百度网盘分享的文件:https://pan.baidu.com/s/1aXzYwLMLx_b59abvplUiYw?pwd=dn71  提取码:dn71 复制这段内容打开「百度网盘APP 即可获取」 图1 任务内容  图2 基本要求内容  图3 发挥部分内容    图4 说明内容   图5 评分内容         本文使用K210芯片设计了一个运动目标控制与自

    2024年02月14日
    浏览(37)
  • 【模板方法设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

    模板方法模式(Template Method Pattern)也叫模板模式,是一种行为型模式。它定义了一个抽象公开类,包含基本的算法骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变算法的结构,只是重定义该算法的某些特定步骤。不同的子类以不同的方式实现这些抽象方法

    2024年02月01日
    浏览(80)
  • 如何使用Chrome直接编辑前端代码

    虽然是后端开发,但是不可避免的有时候需要写一些前端代码,所以一些前端技能还是有必要掌握的。我们知道修改代码之后看到效果最直接的方式就是直接在浏览器修改,但是常规的方式,在页面刷新之后我们所做的修改就会丢掉了,很不利于我们调试,此时就可以使用

    2024年02月16日
    浏览(39)
  • go语言恶意代码检测系统--对接前端可视化与算法检测部分

    恶意代码检测系统。 功能点 详细描述 注册账号 未注册用户注册成为产品用户,从而具备享有产品各项服务的资格 登录账号 用户登录产品,获得产品提供的各项服务 上传恶意样本 用户可以将上传自己的收集到的恶意样本及其样本属性,网站会对该恶意样本进行保存 获取恶

    2024年02月12日
    浏览(43)
  • go语言配置

    与Java等编程语言一样,安装Go语言开发环境需要设置全局的操作系统环境变量(除非是用包管理工具直接安装) 主要的系统级别的环境变量有两个: (1)GOROOT:表示Go语言环境在计算机上的安装位置,它的值可以是任意的位置,这个变量只有一个值,值的内容必须是绝对路径

    2024年02月10日
    浏览(23)
  • 超详细go语言环境配置!!!

    记录参加第五届字节跳动青训营go语言学习内容,转载请标明出处! Go语言官网下载地址(需要科学上网才能下载) 国内Go语言下载地址 根据自己电脑的系统Windows、Linux、macOs下载,这里以 Windows 为例,下载后缀为msi的二进制进行下载, 选择好安装目录,尽量不要安装在C盘下

    2024年02月04日
    浏览(39)
  • Mac 下配置 go语言环境

    没有安装 Homebrew 的小伙伴可以参考这篇文章来安装:《如何在Mac里安装Homebrew》 不太推荐,虽然一行指令就能安装,但是Homebrew的网络问题太严重 进入Go官网: 这里推荐两个go网址: Go 语言中文网 Go 官方镜像站 进入下载页面:(M1用户选择ARM架构) 打开下载好的安装包进行

    2024年02月08日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包