go语言中的template使用

news2024/10/11 23:33:16

在 Go 语言中,你可以使用 text/templatehtml/template 包来创建和执行模板。以下是一个基本示例,展示如何使用 Go 的模板语法:

1. 导入包

import (
    "os"
    "text/template"
)

2. 创建数据结构

定义一个数据结构,用于传递给模板:

type Config struct {
    Name      string
    Version   string
    Replicas  int
}

3. 定义模板

创建一个模板字符串:

const tpl = `
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Name }}-deployment
spec:
  replicas: {{ .Replicas }}
  template:
    metadata:
      labels:
        app: {{ .Name }}
    spec:
      containers:
      - name: {{ .Name }}
        image: "{{ .Name }}:{{ .Version }}"
        ports:
        - containerPort: 8080
`

4. 执行模板

使用 template.New 创建模板并执行:

package main

import (
	"html/template"
	"os"
)

const tpl = `
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Name }}-deployment
spec:
  replicas: {{ .Replicas }}
  template:
    metadata:
      labels:
        app: {{ .Name }}
    spec:
      containers:
      - name: {{ .Name }}
        image: "{{ .Name }}:{{ .Version }}"
        ports:
        - containerPort: 8080
`

type Deploy struct {
	Name     string
	Replicas int
	Version  string
}

func main() {
	tmpl, err := template.New("greeting").Parse(tpl)
	if err != nil {
		panic(err)
	}

	data := Deploy{Name: "gindemo", Version: "v1"}

	// 执行模板,将数据填充到模板中并输出到标准输出
	err = tmpl.Execute(os.Stdout, data)
	if err != nil {
		panic(err)
	}
}

5. 运行程序

运行这个程序后,它会输出一个格式化的 YAML 配置,替换模板中的变量。

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

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

相关文章

反向指标KDJ?只要做个简单的魔改,就能一直在新高路上!

KDJ又叫随机指标,是一个适用于短线的技术指标,在股票、期货等市场受到广泛使用。在老Q看来,这是一个很有趣的指标。但是如果你按照经典用法来使用的话,它就变成财富毁灭机了! 下边,老Q就一步步从统计原理、…

【阿里云中的大数据组件】技术选型和数仓系统流程设计 --- 阿里云的组件简介

文章目录 一、DataHub二、DataWorks 和 MaxCompute三、RDS四、技术选型和对比1、阿里云技术跟之前的技术对比2、技术选型 五、系统流程设计 一、DataHub 通俗来说这个 DataHub 类似于传统大数据解决方案中 Kafka 的角色,提供了一个数据队列功能 对于离线计算&#x…

ES 全文检索完全匹配高亮查询

我们ES会将数据文字进行拆词操作,并将拆解之后的数据保存到倒排索引当中几十使用文字的一部分也能查询到数据,这种检索方式我们就称之为全文检索,ES的查询结果也会倒排索引中去查询匹配 下面的查询结果中输入的词,就是输入小也可…

PDF文件怎么添加水印?这里有6个方法

PDF文件怎么添加水印?在职场中,随着信息数字化的普及,PDF文件已成为我们日常工作中不可或缺的一部分。然而,如何在这些文件中确保信息的安全性和版权保护,成为了许多企业面临的重要课题。其中,给PDF文件添加…

Android常用组件

目录 1. TextView 控件 常用属性: 1)android:text: 2)android:gravity: 3)android:textSize: 4)android:textColor: 5)android:background: 6)android:padding: 7)android:layout_width 和 andr…

Web集群服务-Nginx

1. web服务 1. WEB服务:网站服务,部署并启动了这个服务,你就可以搭建一个网站 2. WEB中间件: 等同于WEB服务 3. 中间件:范围更加广泛,指的负载均衡之后的服务 4. 数据库中间件:数据库缓存,消息对列 2. 极速上手指南 nginx官网: nginx documentation 2.1 配置yum源 vim /etc/…

spock 并行执行单元测试

继上一篇 使用 mvnd之后 发现 deploy 公共库还是需要十分钟左右、后面发现跳过所有单元测试之后、deploy 只需要 4 分钟。 所以想着从提升单元测试的速度来加快 deploy 。 前前后后最终还是按官方的配置并行执行单元测试 链接1 链接2 看了下打印的日志、依赖的是默认的 Fork…

python环境的配置

VScode的安装 https://code.visualstudio.com/download python环境利用anaconda进行安装 https://www.anaconda.com/download/ 点击第三个 conda create -n python python3.8 #建立环境activate python #激活环境路径示例: D:\Anaconda3\envs 打开vscode 配置…

Java学习第九天

相同包下的类可以直接访问,不同包下的类需要导包才可以使用,导包格式:import 包名.类名 final关键字: 常量: 枚举:一种特殊的类型(反编译之后本质就是实例常量,自己定义的类,创建了几…

aws(学习笔记第五课) AWS的firewall SecurityGroup,代理转发技术

aws(学习笔记第五课) AWS的firewall– SecurityGroup,代理转发技术 学习内容: AWS的firewall– SecurityGroup代理转发技术 1. AWS的filewall– SecurityGroup 控制进入虚拟服务器的网络流量 通常的firewall(防火墙)配置 AWS上使用安全组进行网络流量…

linux安装Go ImageMagick插件

ImageMagick安装 在程序中需要对图片转化时需要使用到gopkg.in/gographics/imagick.v2/imagick库,但是这个库需要在本地安装ImageMagick插件。 有些机器在软件库是有的,可以直接下载安装,没有的话推荐源码安装。 ImageMagick中文站 ImageM…

使离医院最远的村庄到医院的路程最短

给定n个村庄之间的交通图,若村庄i和j之间有道路,则将顶点i和j用边连接,边上的Wij表示这条道路的长度,现在要从这n个村庄中选择一个村庄建一所医院,问这所医院应建在哪个村庄,才能使离医院最远的村庄到医院的…

大数据处理从零开始————9.MapReduce编程实践之信息过滤之学生成绩统计demo

1.项目目标 1.1 需求概述 现在我们要统计某学校学生的成绩信息,筛选出成绩在60分及以上的学生。 1.2 业务分析 如果我们想实现该需求,可以通过编写一个MapReduce程序,来处理包含学生信息的文本文件,每行包含【学生的姓名&#x…

《深度学习》【项目】OpenCV 答题卡识别 项目流程详解

目录 一、上半部分 1、定义展示图像函数 2、预处理 运行结果: 3、轮廓检测并绘制 运行结果: 4、排序轮廓 5、定义排序点函数 6、透视变换 1)定义透视变换处理函数 2)执行透视变换 运行结果: 7、二值化处理…

python 边际分布图

import seaborn as snspenguins sns.load_dataset("penguins") colors {"Gentoo": #AE5259, "Adelie": #CF992C, "Chinstrap": #6B9DAA}# 分类散点图 sns.jointplot(datapenguins, x"bill_length_mm", y"bill_depth_…

Linux的kafka安装部署

1.kafka是一个分布式的,去中心化的,高吞吐低延迟,订阅模式的消息队列系统 确保要有jdk与zookeeper安装配置 2.下载kafka安装包 http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.1.tgz 此时可以wget http://archive.apache.org/dist/kafka/2.4.1/kafka_2.12-2.4.…

数字后端零基础入门系列 | Innovus零基础LAB学习Day1

一 Floorplan 数字IC后端设计如何从零基础快速入门?(内附数字IC后端学习视频) Lab5-1这个lab学习目标很明确——启动Innovus工具并完成设计的导入。 在进入lab之前,我们需要进入我们的FPR工作目录。 其中ic062为个人服务器账户。比如你端…

Graph Contrastive Learningwith Reinforcement Augmentation

IJCAI24 推荐指数: #paper/⭐⭐⭐ 领域:图增强强化学习 胡言乱语: 不愧是清华组的论文,这个实验的目的是利用强化学习去生成对比学习的增强视图。但是,其仍然有一些小问题:其本质实际是对以往的图增强方法…

vrrp实验

配置Trunk和Access [SW3]int e0/0/1 [SW3-Ethernet0/0/1]p l a [SW3-Ethernet0/0/1]p d v 10 [SW3-Ethernet0/0/1]int e0/0/2 [SW3-Ethernet0/0/2]p l a [SW3-Ethernet0/0/2]p d v 10 [SW3-Ethernet0/0/2]int e0/0/3 [SW3-Ethernet0/0/3]p l a [SW3-Ethernet0/0/3]p d v 20 [S…

postgresql 安装

一、下载 PostgreSQL: File Browser 下载地址 PostgreSQL: File Browser 上传到服务器,并解压 二、安装依赖 yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel 创建postgresql 和目录 useradd …