下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、goweb之模板引擎go为我们提供了text/template库和html/template库这两个模板引擎,模板引擎通过将数据和模板组合在一起生成终于的html,而处理器负责调用模板引擎并将引擎生成的html返回给客户端。go的模板都是文本文档(其中web应用的模板通常都是html),它们都嵌入了一些称为动作的命令。从模板引擎的角度来说,模板就是嵌入了动作的文本(这些文本通常包含在模板文件里面),而模板引擎则通过分析并执行这些文原来生成出另外一些文本。用法go的web模板引擎需要以下两个步骤:(1) 对文本格式的模板源举行语法分析,创建一个经过语法分析的模板结构,其中模板源既可以是一个字符串
2、,也可以是模板文件中包含的内容。(2 )执行经过语法分析的模板,将responsewriter和模板所需的动态数据传递给模板引擎,被调用的模板引擎会把经过语法分析的模板和传入的数据结合起来,生成出终于的html,并将这些html传递给responsewriter。1、创建模板文件hello.html2、在处理器中触发模板引擎3、 扫瞄器中的结果1、parsefiles函数当我们调用parsefiles函数解析模板文件时,go会创建一个新的模板,并将给定的模板文件的名字作为新模板的名字,假如该函数中传入了多个文件名,那么也只会返回一个模板,而且以第一个文件的文件名作为模板的名字,至于其他文件对应
3、的模板则会被放到一个map中。让我们再来看一下helloworld中的代码:以上代码相当于调用new函数创建一个新模板,然后再调用template的parsefiles办法:以上办法在解析模板时都没有对错误举行处理,go提供了一个must函数特地用来处理这个错误。must函数可以小包起一个函数,被小包的函数会返回一个指向模板的指针和一个错误,假如错误不是nil,那么must函数将产生一个panic。must函数代码2、 parseglob函数通过该函数可以通过指定一个规章一次性传入多个模板文件,如:1、 通过execute办法假如惟独一个模板文件,调用这个办法总是可行的;但是假如有多个模板文件
4、,调用这个办法只能得到第一个模板2、通过executetemplate办法例如:变量t就是一个包含了两个模板的模板集合,第一个模板的名字是hello.html,其次个模板的名字是hello2.html,假如挺直调用execute办法,则惟独模板hello.html会被执行,如何想要执行模板hello2.html,则需要调用executetemplate办法t.executetemplate(w, hello2.html, 我要在hello2.html中显示)go模板的动作就是一些嵌入到模板里面的指令,这些指令在模板中需要放到两个大括号里 动作 ,之前我们已经用过一个很重要的动作:点(。),它代
5、表了传递给模板的数据。下面我们再介绍几个常用的动作,假如还想了解其他类型的动作,可以参考text/template库的文档。1、条件动作格式一:格式二:其中的arg是传递给条件动作的参数,该值可以是一个字符串常量、一个变量、一个返回单个值的函数猎取办法等。案例:模板文件处理器端代码扫瞄器中的结果2、迭代动作迭代动作可以对数组、切片、映射或者通道举行迭代。格式一:格式二:range后面的点代表被遍历的元素;要显示的内容里面的点代表遍历到的元素案例:模板文件处理器端代码扫瞄器中的结果假如迭代之后是一个个的结构体,猎取结构体中的字段值用法 .字段名 方式猎取迭代map时可以设置变量,变量以$开始:迭
6、代管道c1、c2和c3可以是参数或者函数。管道允许用户将一个参数的输出传递给下一个参数,各个参数之间用法 | 分割。3、设置动作设置动作允许在指定的范围内对点设置值。格式一:格式二:案例:模板文件处理器端代码扫瞄器中的结果4、包含动作包含动作允许用户在一个模板里面包含另一个模板,从而构建出嵌套的模板。格式一:name为被包含的模板的名字格式二:arg是用户想要传递给被嵌套模板的数据案例:模板文件hello.htmlhello2.html处理器端代码注重:在解析模板文件时,当前文件以及被包含的文件都要解析。扫瞄器中的结果5、定义动作当我们拜访一些网站时,常常会看到好多网页中有相同的部分:比如导航栏、版权信息、联系方式等。这些相同的布局我们可以通过定义动作在模板文件中定义模板来实现。定义模板的格式是:以 define layout 开始,以 end 结尾。1) 在一个模板文件(hello.html)中定义一个模板2)在一个模板文件中定义多个模板模板文件(hello.html)处理器端代码注重:需要调用executetemplate办法并指定模板的名字扫瞄器中的结果3) 在不同的模板文件中定义同名的模板模板文件hello.html
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026农村管理考试题库及答案
- 2026年南京市分公司出单技能竞赛专业知识试题有答案
- 2026年汽车检测员考试题库(含答案)
- 2025年注册安全工程师《其他安全》真题及答案
- 2025年兽医实验室理论考试题库及参考答案详解
- 2025AHA成人CPR指南核心更新与临床要点
- 办公室经验分享课件
- 办公区域防护课件
- 表格展示课件
- 2026年东城语文一模模拟试题(含答案)
- 2026年养老护理员五级职业技能认定试题(附答案)
- 2026年二建水利实务电子版真题及答案
- 2026年医疗护理员招聘试题及答案
- 2026年计算机程序设计员(三级)职业鉴定考试题库(新版)
- 关键工序和特殊过程的管理程序文件
- 2025年软考《网络规划设计师》历年真题
- 风力发电项目施工现场安全生产管理制度
- 2026年高速公路收费站岗位工作员收费管理技能基础知识考试题库附答案
- 脊髓炎诊疗中国指南(2026 版)
- 南京市2025江苏南京技师学院招聘工作人员26人笔试历年参考题库典型考点附带答案详解
- 阿尔兹海默病研究新进展2026
评论
0/150
提交评论