系统运维

Go语言模板渲染!老男孩教育

字号+作者:益华科技来源:应用开发2025-11-05 15:57:48我要评论(0)

template包(html/template)实现了数据驱动的模板,用于生成可对抗代码注入的安全HTML输出。本包提供了和text/template包相同的接口,无论何时当输出是HTML的时候都应使

  template包(html/template)实现了数据驱动的语言育模板,用于生成可对抗代码注入的模板安全HTML输出。本包提供了和text/template包相同的渲染接口,无论何时当输出是老男HTML的时候都应使用本包。func New(name string) *Template

  创建一个名为name的孩教模板。

Go语言模板渲染!老男孩教育

func (t *Template) Parse(src string) (*Template,语言育 error)

  Parse方法将字符串text解析为模板。嵌套定义的模板模板会关联到最顶层的t。

  Parse可以多次调用,渲染但只有第一次调用可以包含空格、老男注释和模板定义之外的孩教文本。如果后面的语言育调用在解析后仍剩余文本会引发错误、云服务器返回nil且丢弃剩余文本;如果解析得到的模板模板已有相关联的同名模板,会覆盖掉原模板。渲染

func (t *Template) Execute(wr io.Writer,老男 data interface{}) error

  Execute方法将解析好的模板应用到data上,并将输出写入wr。孩教如果执行时出现错误,会停止执行,但有可能已经写入wr部分数据。模板可以安全的并发执行。

func ParseFiles(filenames ...string) (*Template, error)

  ParseFiles函数创建一个模板并解析filenames指定的文件里的模板定义。返回的模板的名字是第一个文件的文件名(不含扩展名),云服务器提供商内容为解析后的第一个文件的内容。至少要提供一个文件。如果发生错误,会停止解析并返回nil。

  渲染终端

  模板渲染终端

  模板替换 {{.字段名}}

package main import ( "fmt" "html/template" "os" ) type Oldboy struct { Name string Slogan string } func main() { // 声明模板内容 const tpl = ` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <p>Name:{{.Name}}</p> <p>Slogan:{{.Slogan}}</p> </body> </html>` // 创建一个新的模板,并且载入内容 t, err := template.New("oldboy").Parse(tpl) if err != nil { fmt.Println(err) } data := Oldboy{ Name: "oldboy", Slogan: "老男孩IT教育,只培养技术精英。", } err = t.Execute(os.Stdout, data) if err != nil { fmt.Println(err) } }

  渲染存储文件

  模板渲染存储文件

package main import ( "fmt" "html/template" "os" ) type Oldboy struct { Name string Slogan string } // 声明模板内容 const tpl = ` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <p>Name:{{.Name}}</p> <p>Slogan:{{.Slogan}}</p> </body> </html>` func main() { // 创建一个新的模板,并且载入内容 t, err := template.New("oldboy").Parse(tpl) if err != nil { fmt.Println(err) } data := Oldboy{ Name: "oldboy", Slogan: "老男孩IT教育,只培养技术精英。", } file, err := os.OpenFile("./oldboy.dat", os.O_CREATE|os.O_WRONLY, 0755) if err != nil { fmt.Println("open failed err:", err) return } err = t.Execute(file, data) if err != nil { fmt.Println(err) } }

  渲染浏览器

  目录结构:

oldboy | —— oldboy.go | —— oldboy.html

  oldboy.html 代码如下:

<html> <head> <title>oldboy</title> </head> <body> <p>Name:{{.Name}}</p> <p>Slogan:{{.Slogan}}</p> </body> </html>

  oldboy.go 代码如下:

package main import ( "fmt" "html/template" "net/http" ) type Oldboy struct { Name string Slogan string } func main() { http.HandleFunc("/oldboy", oldboy) err := http.ListenAndServe("0.0.0.0:8888", nil) if err != nil { fmt.Println("http listen failed") } } func oldboy(w http.ResponseWriter, r *http.Request) { t, err := template.ParseFiles("./oldboy.html") if err != nil { fmt.Println("parse file err:", err) return } data := Oldboy{ Name: "oldboy", Slogan: "老男孩IT教育,只培养技术精英。", } t.Execute(w, data) }

  编译运行,然后在浏览器中输入 :

  http://localhost:8888/oldboy

  页面显示:

Name:oldboy Slogan:老男孩IT教育,只培养技术精英。

  form表单提交

package main import ( "io" // "log" "net/http" ) const form = `<html><body><form action="#" method="post" name="bar"> <input type="text" name="in"/> <input type="text" name="in"/> <input type="submit" value="Submit"/> </form></body></html>` func FormServer(w http.ResponseWriter, request *http.Request) { w.Header().Set("Content-Type", "text/html") switch request.Method { case "GET": io.WriteString(w, form) case "POST": request.ParseForm() io.WriteString(w, request.Form["in"][1]) io.WriteString(w, "\n") io.WriteString(w, request.FormValue("in")) } } /* func HandleFunc(pattern string, handler func(ResponseWriter, *Request)) { DefaultServeMux.HandleFunc(pattern, handler) } */ func main() { http.HandleFunc("/test2", FormServer) if err := http.ListenAndServe(":8088", nil); err != nil { } }

  然后在浏览器中输入 :

  http://localhost:8088/test2

  页面显示:

  两个输入框

  第一个输入框输入:123

  第二个输入框输入:456

  提交表单

  页面显示:

  456 123

源码下载

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Debian桌面环境默认不允许root登录,所以需要修改配置。 一、让Debian可以使用root登录 1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[security]字段后面追加如下一行: 复制代码代码如下:vi /etc/pam.d/gdm-password 将auth   required        pam_succeed_if.so user != root quiet_success注释掉 //本行前加# 二、让Debian以root自动登录 1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[daemon]字段后面追加如下两行: 复制代码代码如下:TimedLoginEnable = true 复制代码代码如下:vi /etc/pam.d/gdm-autologin 将[/ode]auth    required        pam_succeed_if.so user != root quiet_success[/code]注释掉。 //在本行前加#,取消Debian不让root登录的限制。 重启系统即可!

    Debian桌面环境默认不允许root登录,所以需要修改配置。 一、让Debian可以使用root登录 1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[security]字段后面追加如下一行: 复制代码代码如下:vi /etc/pam.d/gdm-password 将auth   required        pam_succeed_if.so user != root quiet_success注释掉 //本行前加# 二、让Debian以root自动登录 1)首先修改gdm3的设定文件(/etc/gdm3/daemon.conf),在[daemon]字段后面追加如下两行: 复制代码代码如下:TimedLoginEnable = true 复制代码代码如下:vi /etc/pam.d/gdm-autologin 将[/ode]auth    required        pam_succeed_if.so user != root quiet_success[/code]注释掉。 //在本行前加#,取消Debian不让root登录的限制。 重启系统即可!

    2025-11-05 15:29

  • 使用大白菜U盘启动盘装系统教程(轻松安装系统,大白菜U盘启动盘操作指南)

    使用大白菜U盘启动盘装系统教程(轻松安装系统,大白菜U盘启动盘操作指南)

    2025-11-05 14:15

  • 基伍大7手机综合评测(探索基伍大7手机的性能、功能与用户体验)

    基伍大7手机综合评测(探索基伍大7手机的性能、功能与用户体验)

    2025-11-05 14:11

  • HP8460p(性能出众,外观精致,适用于商务人士和学生群体)

    HP8460p(性能出众,外观精致,适用于商务人士和学生群体)

    2025-11-05 13:33

网友点评
精彩导读
本文向大家介绍一些我在 Ubuntu 15.10 安装之后所做的几项配置。1.了解新功能特性Ubuntu 15.10 Wily Werewolf 虽然不是一个颠覆性的功能更新版本,但还是带来了不少的功能特性和用户体验改进,之前的 Ubuntu 15.10 新特性文章 中已经有过介绍,这里不再赘述。2.更新系统虽然是才发布的最新 Ubuntu 15.10 版本,但在安装好之后还是有些系统更新和软件更新需要进行的,这在 Linux 世界不足为奇。我们可以在软件更新器中直接点击立即安装进行更新。3.安装Linux显卡驱动要获得 Ubuntu 更好的显示性能就必需安装好适配的显卡驱动程序,以让 Ubuntu 桌面能够平稳运行,在安装好 Linux 显卡驱动后也可以让你在游戏和多媒体应用中获得最佳的帧速率。Ubuntu 目前已支持大多数图形硬件的开源驱动,要为 Ubuntu 15.10 安装驱动程序可以在软件和更新—附加驱动中进行安装。4.安装媒体编解码器受限于法律限制 Ubuntu 无法直接集成 MP3 等流行的媒体编解码器以让用户开箱即用,不过这个问题很好解决,我们可以直接在 Ubuntu 软件中心中搜索 Ubuntu restricted extras 进行安装。5.调整菜单当我们在 Ubuntu 15.10 中打开应用或窗口之后,默认在顶部都会显示菜单(几秒)之后便会自动隐藏,当我们将鼠标焦点再移到顶部栏时菜单才会再次出现。该功能可以节省显示空间,以减少对用户的操作干扰。假如你不喜欢此功能,可以在系统设置—外观—中调整到在窗口的标题栏,将菜单栏调整到应用窗口显示,而不在顶部栏显示。6.处理Flash问题虽然互联网上掀起了抛弃 Flash 的浪潮,但还是有些网站需要使用到 Flash 的。但 Adobe 早在几年前便宣布了停止对 Linux 的 Flash 支持,许多浏览器都宣布要放弃 NPAPI 架构。目前来说,我比较推荐大家使用 Google Chrome 浏览器,因为其最新版本可以很好的处理 Flash 插件问题。7.换一个好看的皮肤由于 Ubuntu 几年来的默认主题都没太大变化,给人的感觉总是没太多变化和新意,这让我们的 Ubuntu 显示比较单调。因此,在装好 Ubuntu 15.10 之后换一个好看点的主题也是一项比较建议的操作。假如你只想更改 Ubuntu 15.10 桌面背景的话,可以到系统设置—外观中进行更改。8.管理隐私当我们在 Unity Dash 中搜索文件时,总会出现应用程序、在线结果和重要文件的相关数据。假如不希望包含个人信息的数据出现在搜索结果中,我们可以选择将其关闭。在系统设置—安全和隐私的文件和应用选择卡中选择关闭并去掉要禁止搜索结果中显示的数据类型即可。假如不想在 Unity Dash 显示在线搜索结果,只需在搜索选项卡中禁用在线搜索结果即可。9.安装所需的应用Ubuntu 15.10 虽然为我们内置了大名鼎鼎的 LibreOffice 和 Firefox 等应用,但这些应用也许不是你最钟爱和常用的。Ubuntu 软件中心为我们提供了数量众多的免费应用,其中就包括:◆Steam – 游戏分销平台◆GIMP – 好用的图像编辑器◆VLC – 国际上非常流行的媒体播放器◆Geary – 桌面电子邮件客户端◆Chromium – 来自 Google 的开源 Web 浏览器◆Skype – 这个不用我介绍吧当然,我个人比较推荐的一些软件如下(不包括在Ubuntu 软件中心):◆Google Chrome – 这个不用介绍◆Spotify for Linux – Linux 下流行的流媒体音乐服务◆Corebird – Linux 桌面 Twitter 客户端◆Lightwork – 业非线视频编辑器◆Viber – Skype的替代方案◆Vivaldi – 面向开发人员的 Web 浏览器10.安装搜狗输入法由 Ubuntu Kylin 团队与搜狗公司联合开发的搜狗Linux 输入法2.0 版本版于 2015 年10 月16 日正式发布,具有支持双拼、智能拼音、自动匹配、多样化皮肤支持等功能。以上就是Ubuntu 15.10安装之后需要做的十件事,希望对大家的学习有所帮助。

本文向大家介绍一些我在 Ubuntu 15.10 安装之后所做的几项配置。1.了解新功能特性Ubuntu 15.10 Wily Werewolf 虽然不是一个颠覆性的功能更新版本,但还是带来了不少的功能特性和用户体验改进,之前的 Ubuntu 15.10 新特性文章 中已经有过介绍,这里不再赘述。2.更新系统虽然是才发布的最新 Ubuntu 15.10 版本,但在安装好之后还是有些系统更新和软件更新需要进行的,这在 Linux 世界不足为奇。我们可以在软件更新器中直接点击立即安装进行更新。3.安装Linux显卡驱动要获得 Ubuntu 更好的显示性能就必需安装好适配的显卡驱动程序,以让 Ubuntu 桌面能够平稳运行,在安装好 Linux 显卡驱动后也可以让你在游戏和多媒体应用中获得最佳的帧速率。Ubuntu 目前已支持大多数图形硬件的开源驱动,要为 Ubuntu 15.10 安装驱动程序可以在软件和更新—附加驱动中进行安装。4.安装媒体编解码器受限于法律限制 Ubuntu 无法直接集成 MP3 等流行的媒体编解码器以让用户开箱即用,不过这个问题很好解决,我们可以直接在 Ubuntu 软件中心中搜索 Ubuntu restricted extras 进行安装。5.调整菜单当我们在 Ubuntu 15.10 中打开应用或窗口之后,默认在顶部都会显示菜单(几秒)之后便会自动隐藏,当我们将鼠标焦点再移到顶部栏时菜单才会再次出现。该功能可以节省显示空间,以减少对用户的操作干扰。假如你不喜欢此功能,可以在系统设置—外观—中调整到在窗口的标题栏,将菜单栏调整到应用窗口显示,而不在顶部栏显示。6.处理Flash问题虽然互联网上掀起了抛弃 Flash 的浪潮,但还是有些网站需要使用到 Flash 的。但 Adobe 早在几年前便宣布了停止对 Linux 的 Flash 支持,许多浏览器都宣布要放弃 NPAPI 架构。目前来说,我比较推荐大家使用 Google Chrome 浏览器,因为其最新版本可以很好的处理 Flash 插件问题。7.换一个好看的皮肤由于 Ubuntu 几年来的默认主题都没太大变化,给人的感觉总是没太多变化和新意,这让我们的 Ubuntu 显示比较单调。因此,在装好 Ubuntu 15.10 之后换一个好看点的主题也是一项比较建议的操作。假如你只想更改 Ubuntu 15.10 桌面背景的话,可以到系统设置—外观中进行更改。8.管理隐私当我们在 Unity Dash 中搜索文件时,总会出现应用程序、在线结果和重要文件的相关数据。假如不希望包含个人信息的数据出现在搜索结果中,我们可以选择将其关闭。在系统设置—安全和隐私的文件和应用选择卡中选择关闭并去掉要禁止搜索结果中显示的数据类型即可。假如不想在 Unity Dash 显示在线搜索结果,只需在搜索选项卡中禁用在线搜索结果即可。9.安装所需的应用Ubuntu 15.10 虽然为我们内置了大名鼎鼎的 LibreOffice 和 Firefox 等应用,但这些应用也许不是你最钟爱和常用的。Ubuntu 软件中心为我们提供了数量众多的免费应用,其中就包括:◆Steam – 游戏分销平台◆GIMP – 好用的图像编辑器◆VLC – 国际上非常流行的媒体播放器◆Geary – 桌面电子邮件客户端◆Chromium – 来自 Google 的开源 Web 浏览器◆Skype – 这个不用我介绍吧当然,我个人比较推荐的一些软件如下(不包括在Ubuntu 软件中心):◆Google Chrome – 这个不用介绍◆Spotify for Linux – Linux 下流行的流媒体音乐服务◆Corebird – Linux 桌面 Twitter 客户端◆Lightwork – 业非线视频编辑器◆Viber – Skype的替代方案◆Vivaldi – 面向开发人员的 Web 浏览器10.安装搜狗输入法由 Ubuntu Kylin 团队与搜狗公司联合开发的搜狗Linux 输入法2.0 版本版于 2015 年10 月16 日正式发布,具有支持双拼、智能拼音、自动匹配、多样化皮肤支持等功能。以上就是Ubuntu 15.10安装之后需要做的十件事,希望对大家的学习有所帮助。

热门资讯