GO学习第五天——页面显示数据

    又隔了几天没有写博文了。这次就记录一下在GO的Web应用中,页面显示数据吧。

    首先,写GO Web的页面和普通html不同的就是本地资源的src。


<link rel="stylesheet" type="text/css" href="../static/styleheets/bootstrap.css">

    平常写静态html这样写的意思是使用上一级目录下的static/styleheets/bootstrap.css文件。但是在GO中要稍微处理一下。

http.Handle("/styleheets/", http.FileServer(http.Dir("static")))

然后在页面中的css引用改为

<link rel="stylesheet" type="text/css" href="/styleheets/bootstrap.css">


GO学习第五天——页面显示数据_第1张图片

上图是我项目目录的结构。

javascript也是差不多,这里就不做记录了。

    接下来就是页面如何动态显示后台传来的数据。

    这里我提供两种方法。

    第一种:使用GO的模板

    首先导入模板的包。

import "html/template"


    后台传数据的写法如下

titles := []string{"title1","title2"}
t, _ := template.ParseFiles("views/tasks.gtpl")
t.Execute(w,titles)

    页面中要遍历titles的话写法如下

{{range .}}
<dd><a href="#" >{{.}}</a></dd>
{{end}}

    具体可以参考https://github.com/astaxie/build-web-application-with-golang/blob/master/ebook/07.4.md。

    至于怎样传递多个值到页面呢。。。这个我没有试过,如果试过的话会更新一下的。

    里面其实说的挺清楚的了。这里再补充三点。

    1、可以导入os包(import "os"),t.Execute(w,titles)改为t.Execute(os.Stdout,titles)来调试,这样可以把原本应该输出到浏览器的输出到控制台,这样可以查看原本应该输出到浏览器的信息到底有没有错(因为如果模板解析错了,导致缺少了一些信息,例如<body>{{.Title}}</body>,由于{{.Title}}解析错误,所以输出的只有<body>,但是到达浏览器的时候它会帮你补全,这样你就不知道是哪里问题了)。

    2、 注意在有些明明需要首字母大写的,这个参考上面的链接。

    3、 这点一定要注意啊。。。我就因为这个被坑了一个下午。。。。{{.}}这个东东是不认<!-- -->这个注释符的啊。我在写tasks.gtpl的时候把{{.Title}}用<!-- -->,没想到在模板那里解析的时候还是会解析它,搞到解析错误。。。。。


    第二种:使用js

    这个我不多说,不懂的就看w3cschool看jq吧。(主要是因为我不熟悉这个,不懂讲。。。)

                                                                                                               有缘再见         




你可能感兴趣的:(Go,页面显示数据)