golang gin template模板渲染

1、根据值控制html元素显示隐藏

main.go

package main
import ("html/template""net/http""github.com/gin-gonic/gin"
)
func main() {r := gin.Default()r.SetFuncMap(template.FuncMap{"greaterThan": func(a, b int) bool {return a > b},})r.LoadHTMLGlob("templates/*")r.GET("/", func(c *gin.Context) {value := 10 // 示例值c.HTML(http.StatusOK, "index.html", gin.H{"Value": value,})})r.Run()
}

index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Example</title>
</head>
<body>{{ if greaterThan .Value 5 }}<div>Value is greater than 5</div>{{ end }}
</body>
</html>

在 Go 的 Gin 框架中,可以使用条件语句在 HTML 模板中控制元素的渲染。假设你有一个变量 `value`,你想根据它的值来决定是否渲染某个 HTML 元素,可以这样做:

这段代码会在 `value` 大于 5 时显示指定的 `<div>` 元素。否则,该元素将不会被渲染。

显示结果

2、循环遍历列表生成html元素

main.go

package mainimport ("github.com/gin-gonic/gin""net/http"
)type ListArr struct {Name stringAge  int
}func main() {r := gin.Default()l := [3]ListArr{{Name: "bob", Age: 20},{Name: "jack", Age: 30},{Name: "alice", Age: 32},}r.LoadHTMLGlob("templates/*")r.GET("/", func(c *gin.Context) {c.HTML(http.StatusOK, "index.html", gin.H{"List": l,})})r.Run(":9999")
}

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Example</title>
</head>
<body>{{range .List}}<p>my name is {{.Name}} my age is {{.Age}}</p>{{end}}
</body>
</html>

运行效果

3、一和二结合使用

main.go

package mainimport ("github.com/gin-gonic/gin""html/template""net/http"
)type ListArr struct {Name stringAge  int
}func main() {r := gin.Default()r.SetFuncMap(template.FuncMap{"greaterThan": func(a, b int) bool {return a > b},})l := [3]ListArr{{Name: "bob", Age: 20},{Name: "jack", Age: 30},{Name: "alice", Age: 32},}r.LoadHTMLGlob("templates/*")r.GET("/", func(c *gin.Context) {c.HTML(http.StatusOK, "index.html", gin.H{"List": l,})})r.Run(":9999")
}

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Example</title>
</head>
<body>{{range .List}}{{ if greaterThan .Age 25 }}<p>my name is {{.Name}} my age is {{.Age}} 年龄超过了25岁</p>{{ else }}<p>my name is {{.Name}} my age is {{.Age}} 年龄没有25岁</p>{{ end }}{{end}}
</body>
</html>

运行效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何利用chatgpt的提升代码能力

目录 1. 在用python绘图的时候,总是花的时间较长,需要将这些绘图的代码花费时间都记下来吗?还是进行总结、提炼到笔记中,需要的时候复制粘贴并改写?1. 记录与总结并行进行2. 模块化代码3. 性能优化4. 工具与自动化5. 笔记整理6. 复制粘贴与调整2. 利用python进行数据分析的…

PyCharm 自定义字体大小

常用编程软件自定义字体大全首页 文章目录 前言具体操作1. 打开设置对话框2. 设置编辑器字体3. 选择外观字体 前言 PyCharm 自定义字体大小&#xff0c;统一设置为 JetBrains Mono 具体操作 【File】>【Settings...】>【Editor】>【Font】 统一设置为字体样式 JetB…

人工智能训练师工作内容及职业发展路径

人工智能训练师&#xff08;AI Trainer&#xff09;是一种专业职位&#xff0c;主要负责训练和优化人工智能系统&#xff0c;尤其是机器学习模型。他们的工作涉及到以下几个方面&#xff1a; 1、数据准备&#xff1a;训练师需要收集、清洗和预处理数据&#xff0c;以确保数据的…

C++ | Leetcode C++题解之第355题设计推特

题目&#xff1a; 题解&#xff1a; class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…

简易STL实现 | Deque的实现

一种 在内存中存储元素的数据结构&#xff0c;它支持 在两端添加和删除元素&#xff08;使用循环数组实现&#xff09; 1、deque的特性&#xff08;分段deque实现&#xff09; 1、双端操作&#xff1a; deque支持在前端和后端执行快速的插入和删除操作 2、随机访问&#xff…

世界上装机量最大的数据库SQLite,低调但不小众

&#x1f389; 大家好&#xff0c;我是你们的数据小侦探&#xff0c;今天咱们不聊那些炫酷的AI黑科技&#xff0c;也不深挖大数据的深邃眼眸&#xff0c;咱们来聊聊一位数据库界的“低调奢华有内涵”的隐形冠军——SQLite&#xff01;&#x1f451; &#x1f914; 你可能没听过…

文本数据分析-(TF-IDF)(2)

文章目录 一、TF-IDF与jieba库介绍1.TF-IDF概述2.jieba库概述 二、TF-IDF与jieba库的结合1.结合2.提取步骤 三&#xff0c;代码实现1.导入必要的库读取文件&#xff1a;3.将文件路径和内容存储到DataFrame4.加载自定义词典和停用词5.分词并去除停用词 TF-IDF&#xff08;Term F…

Servlet 简介+ Cookie和session+过滤器Filter和监听器Listener

目录 1.Servlet 介绍 1.1 什么是Servlet 1.2 Servlet的使用方法 1.3 Servlet接口的继承结构 2.Servlet的生命周期 2.1 servlet生命周期中重要的方法 3.获得前端提交数据 4.中文乱码的解决方案 5.重定向和转发 5.1 重定向 5.2 转发 6. Request对象 7. Response对象…

Linux上启动redis

1.默认启动方式:在系统的任意位置执行 redis-server即可启动 ps:这是前端界面启动&#xff0c;无法直接连接redis&#xff0c;想要连接的话只能另外启动一个窗口&#xff0c;因此下面我们介绍后台启动redis 2.指定配置启动&#xff1a; redis的配置文件位置&#xff1a…

华为手机数据丢失如何恢复?

在智能手机普及的今天&#xff0c;华为手机凭借其卓越的性能和用户体验赢得了众多用户的青睐。然而&#xff0c;在使用过程中&#xff0c;我们难免会遇到数据丢失或误删除的情况。面对这一困境&#xff0c;许多用户可能会感到束手无策。别担心&#xff0c;本文将为你提供一份全…

FastGPT:利用大模型重新定义传统知识库

引言 传统知识库的痛点 传统知识库广泛应用于企业文档管理、客户支持等场景&#xff0c;但随着信息量和复杂度的增加&#xff0c;存在以下显著问题&#xff1a; 数据难整合&#xff1a; 结构化与非结构化数据分散&#xff0c;更新维护成本高。检索不精准&#xff1a; 依赖关…

PostgreSQL分区表原理、案例的灵活应用

PostgreSQL分区表的灵活应用 通常情况下&#xff0c;扫描一个大表会很慢,需要扫描整张表格&#xff0c;如果能够把大表分拆成小表&#xff0c;查询数据的时猴&#xff0c;只扫描数据所属的小表&#xff0c;就能大大降低扫描时间&#xff0c;提高查询速度。 1、简介 PostgreS…

【前端开发必备小技巧】前端代码规范Vue篇

文章目录 &#x1f7e2; 前端代码规范&#x1f7e2; 一、前端代码规范Vue篇&#x1f449;1、Vue编码基础&#x1f449;1.1、组件规范&#x1f449;1.2、模板中使用简单的表达式&#x1f449;1.3、指令都使用缩写形式&#x1f449;1.4、 标签顺序保持一致&#x1f449;1.5、必须…

【Kotlin设计模式】Kotlin实现适配器模式

前言 适配器模式(Adapter Pattern)的核心将某个类的接口转换成客户端期望的另一个接口表示&#xff0c;使得客户端能够通过自己期望的接口与不兼容的类进行交互。适配器模式有三种实现方式&#xff0c;分别是类适配器模式、对象适配器模式、 接口适配器模式。 我们假设有个视频…

mysql 创建数据库和表,以及对表字段的操作

目录 前言1. 创建数据库2. 选择数据库3. 创建表4. 添加字段5. 修改字段6. 删除字段总结 前言 在MySQL中&#xff0c;你可以通过SQL语句来创建数据库、表&#xff0c;以及在表中添加、修改、删除字段。下面我将分别展示这些操作的示例。 1. 创建数据库 首先&#xff0c;你需要…

3D Tiles的4x4的仿射变换矩阵

前言 项目需要&#xff0c;使用Cesium技术&#xff0c;把STL格式模型加载进去。 一、格式转换 第一步&#xff0c;先将STL文件转换为glTF格式 第二步&#xff0c;将glTF文件转换为3D Tiles格式&#xff0c;使用Cesium ion 二、矩阵整体结构 这个矩阵是一个4x4的仿射变换矩阵&…

3154. 到达第 K 级台阶的方案数

3154. 到达第 K 级台阶的方案数 题目链接&#xff1a;3154. 到达第 K 级台阶的方案数 代码如下&#xff1a; //参考链接&#xff1a;https://leetcode.cn/problems/find-number-of-ways-to-reach-the-k-th-stair/solutions/2782792/liang-chong-fang-fa-ji-yi-hua-sou-suo-zu…

LeetCode题练习与总结:单词搜索Ⅱ--212

一、题目描述 给定一个 m x n 二维字符网格 board 和一个单词&#xff08;字符串&#xff09;列表 words&#xff0c; 返回所有二维网格上的单词 。 单词必须按照字母顺序&#xff0c;通过 相邻的单元格 内的字母构成&#xff0c;其中“相邻”单元格是那些水平相邻或垂直相邻…

中智科学技术评价研究中心与中企数研究院实现全面合作

8月29日&#xff0c;中智科学技术评价研究中心与《中国企业报》集团数字化发展研究院在北京顺喜山庄成功举办“数字经济GBC生态系统管理平台”项目实施落地座谈会及研究院高层管理集训班&#xff0c;并签署了项目合作协议。此次合作标志着双方将在“数字中国发展战略”的大背景…

人工智能领域正经历模型规模变革,小型语言模型(SLM)崛起,挑战“规模至上”观念。

在人工智能领域&#xff0c;一场关于模型规模的深刻变革正在悄然发生。长久以来&#xff0c;科技巨头们热衷于庞大语言模型&#xff08;LLM&#xff09;的开发竞赛&#xff0c;但如今&#xff0c;小型语言模型&#xff08;SLM&#xff09;正以其独特的优势逐步崭露头角&#xf…