go语言快速入门:模板应用(15)
发布日期:2021-06-30 20:24:17
浏览次数:2
分类:技术文章
本文共 2412 字,大约阅读时间需要 8 分钟。
在go语言中,通过使用http包,可以非常简单快速地创建一个Web应用。同时使用template包,可以很方便的进行数据替换,如果结合CSS就已经能够进行简单的开发了。这篇文章继续使用简单的例子来介绍CSS在嵌套template中的使用方式。
实例3
上篇文章通过使用嵌套的template,使得组件式重用变得可能。但是没有样式依然显得较为单调。接下来我们将会在上一篇文章的基础上尝试加入简单的样式进行页面的显示。
例子代码
因为只是样式表的变化,虽然目前的程序极为简单,但是解耦已经能稍微看到一点。因为代码无需作任何变化,仍然是上篇文章的代码即可,通过userall.tpl对如下三个部分进行嵌套调用。
项目 | 详细内容 |
---|---|
Header | Person general infor |
Center | Name/Id/Country信息 |
Footer | Hello, { {.Name}} Welcome to go programming… |
[root@liumiaocn goprj]# cat basic-web-hello3.gopackage mainimport "fmt"import "net/http"import "html/template"func Hello(response http.ResponseWriter, request *http.Request) { type person struct { Id int Name string Country string } liumiaocn := person{Id: 1001, Name: "liumiaocn", Country: "China"} tmpl, err := template.ParseFiles("./userall.tpl","./header.tpl","./center.tpl","./footer.tpl") if err != nil { fmt.Println("Error happened..") } tmpl.Execute(response,liumiaocn)}func main() { http.HandleFunc("/", Hello) http.ListenAndServe(":8080", nil)}[root@liumiaocn goprj]#
Header部分
使用{
{define “”}}方式进行定义,以便使用{ {template “”}}方式进行嵌套调用,需要注意{ {end}}的结尾。格式错误可能会带来无法正常动作的影响。Center和Footer部分也一样。为了说明和联系更加方便,将css部分直接写到了Header中。[root@liumiaocn goprj]# cat header.tpl{ { define "header"}}Person general infor
{ { end}}[root@liumiaocn goprj]#
Center部分
[root@liumiaocn goprj]# cat center.tpl{ { define "center"}}
{ { end}}[root@liumiaocn goprj]#
- Name:
- Id :
- Country:
- { { .Name}}
- { { .Id}}
- { { .Country}}
Footer部分
[root@liumiaocn goprj]# cat footer.tpl{ { define "footer"}}{ { end}}[root@liumiaocn goprj]#
嵌套用法
使用{
{template “”}}语法进行调用,注意有输出传递是需要使用如下格式。userall.tpl未作变化。 [root@liumiaocn goprj]# cat userall.tpl { {template “header” .}} { {template “center” .}} { {template “footer” .}} [root@liumiaocn goprj]#执行确认
[root@liumiaocn goprj]# go run basic-web-hello3.go
结果确认
不再是单调地显示,CSS的结果已经起效。
我们成功地倒入CSS到嵌套的template的应用之中使得原本简单的页面变得丑陋无比。然而这并没有什么用。总结
通过导入CSS到嵌套的template的Web开发之后,至此虽然简单,使用go语言进行M/V/C的简单设计和开发,加上Redirect方法基本上就算有了一把简单的钥匙,可以自行进行进一步探索了。然而对于想快速进行原型开发但苦于无美工基础的后端工程师来说,像bootstrap这样谁做都是一样难看和好看的框架无疑具有很大吸引力,在后续文章中将会进一步介绍如何使用go+bootstrap进行开发。
转载地址:https://liumiaocn.blog.csdn.net/article/details/54897395 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月05日 23时00分38秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
NAS (Network Attached Storage 网络附属存储)
2019-04-30
Ubuntu更新后终端中字体的颜色全是白色
2019-04-30
vscode git
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2FSK
2019-04-30
基于MATLAB的二进制数字调制与解调信号的仿真——2PSK
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——AM
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——DSB
2019-04-30
基于MATLAB的模拟调制信号与解调的仿真——SSB
2019-04-30
操作系统实验之生产者和消费者程序
2019-04-30
操作系统实验之猴子过桥问题的模拟程序
2019-04-30
POJ - 3067 Japan (树状数组 思维)
2019-04-30
POJ - 2352 Stars (树状数组 入门题)
2019-04-30
HDU - 1166 敌兵布阵 (树状数组模板题/线段树模板题)
2019-04-30
CodeForces - 761C Dasha and Password (思维 暴力)
2019-04-30
POJ - 2481 Cows (树状数组 入门题)
2019-04-30
ACM-ICPC 2018 焦作赛区网络预赛 I. Save the Room
2019-04-30
CodeForces - 987C Three displays (暴力/dp)
2019-04-30
计蒜客 NAIPC 2016 F. Mountain Scenes(dp)
2019-04-30