我正在循环我的API响应并将其添加到这样的html模板,

// Following sends same information as above to the browser as html

t, err := template.New("TopMovies").Parse(`

{{define "TopMovies"}}

{{$ImgUrl := "http://image.tmdb.org/t/p/w185" }}

{{range $movies := .Results}}

{{$ImgUrl}}{{$movies.PosterPath}}{{$movies.Adult}}{{$movies.Overview}}{{$movies.ReleaseDate}}{{$movies.GenreIds}}{{$movies.Id}}{{$movies.OriginalTitle}}{{$movies.OriginalLanguage}}{{$movies.Title}}{{$ImgUrl}}{{$movies.BackdropPath}}{{$movies.Popularity}}{{$movies.VoteCount}}{{$movies.Video}}{{$movies.VoteAverage}}

{{end}}

{{end}}

`)

err = t.ExecuteTemplate(w, "T", p) // This writes the client response

}

我的印象是我应该可以在我这样的html模板中调用它,

{{.TopMovies}}

但是当我运行应用程序时,数据不会显示在我调用它的html页面中.我在这里缺少什么?

我创建了这样的结构,

//A Page structure

type Page struct {

Title string

TopMovies string

}

然后我像这样创建我的手柄,

func TopMoviesHandler(w http.ResponseWriter, r *http.Request) {

res, err := http.Get(url)

if err != nil {

panic(err)

}

defer res.Body.Close()

body, err := ioutil.ReadAll(res.Body)

if err != nil {

panic(err)

}

var p Payload

err = json.Unmarshal(body, &p)

if err != nil {

panic(err)

}

// Following sends same information as above to the browser as html

t, err := template.New("TopMovies").Parse(`

{{define "TopMovies"}}

{{$ImgUrl := "http://image.tmdb.org/t/p/w185" }}

{{range $movies := .Results}}

{{$ImgUrl}}{{$movies.PosterPath}}{{$movies.Adult}}{{$movies.Overview}}{{$movies.ReleaseDate}}{{$movies.GenreIds}}{{$movies.Id}}{{$movies.OriginalTitle}}{{$movies.OriginalLanguage}}{{$movies.Title}}{{$ImgUrl}}{{$movies.BackdropPath}}{{$movies.Popularity}}{{$movies.VoteCount}}{{$movies.Video}}{{$movies.VoteAverage}}

{{end}}

{{end}}

`)

err = t.ExecuteTemplate(w, "T", p) // This writes the client response

}

然后在main.go

http.HandleFunc("/TopPicks", TopMoviesHandler)

TopPicks.html

{{define "TopPicks"}}

{{template "header" .}}

{{.TopMovies}}

{{template "footer" .}}

{{end}}

这是什么工作,

func aboutHandler(w http.ResponseWriter, r *http.Request) {

display(w, "about", &Page{Title: "About"})

}

我可以用与前面提到的相同的方式为页面添加标题但是使用display()

并在HTML模板中

{{.Title}}

我怎样才能为json响应做这项工作?

最佳答案 看起来你正在做{{define“body”}},但后来要求ExecuteTemplate执行“T”,它没有在任何地方定义.

我想你想:t.ExecuteTemplate(w,“body”,p)

总而言之,如果您只想使用多个模板,可以通过创建主顶级模板,然后将所有部件解析为子模板来实现.

这是一个例子(on Play).

轻松更改以遍历文件系统并加载所有模板,然后只需执行与http.Request路径匹配的模板.

package main

import "html/template"

import "os"

import "log"

var mainText = `

Normal page stuff

{{ template "_header_" . }}

{{ template "body" . }}

`

var bodyText = `

Body has: {{ .Thing }}

`

var headerText = `

I am header text

`

type Stuff struct {

Thing string

}

func main() {

t := template.New("everything")

// parse all templates you may want

template.Must(t.New("/").Parse(mainText))

template.Must(t.New("_header_").Parse(headerText))

template.Must(t.New("body").Parse(bodyText))

if err := t.ExecuteTemplate(os.Stdout, "/", Stuff{"I am a thing"}); err != nil {

log.Fatal("Failed to execute:", err)

}

}

json数据映射到html,在GoLang中将Json数据映射到Html模板相关推荐

  1. python 导出大量数据到excel_怎么在python中将大量数据导出到Excel文件

    怎么在python中将大量数据导出到Excel文件 发布时间:2021-01-16 11:09:40 来源:亿速云 阅读:76 作者:Leah 这期内容当中小编将会给大家带来有关怎么在python中将 ...

  2. json字符串导入oracle,如何在Oracle中将JSON字符串转换为JSON

    我需要在Oracle查询中将JSON字符串转换为JSON. 示例字符串: {"1":{"qid":1,"aid":1,"a&quo ...

  3. java json转换xml格式_在Java中将JSON对象转换为XML格式?

    JSON是一种轻量级的数据交换格式,并且JSON的格式类似于键值对.我们可以使用org.json.XML类将JSONObject转换为XML格式,这提供了将XML文本转换为JSONObject并将JS ...

  4. Golang 处理 Json(二):解码

    golang 编码 json 还比较简单,而解析 json 则非常蛋疼.不像 PHP 一句 json_decode() 就能搞定.之前项目开发中,为了兼容不同客户端的需求,请求的 content-ty ...

  5. java json发送文件_关于java:REST API设计在同一请求中将JSON数据和文件发送到api...

    我正在现有应用程序之上创建一个RESTAPI.其中一个特性接受JSON数据以及用户上传的文件. 我不确定如何将同一请求中的文件和JSON数据发送到RESTAPI? 我让JSON部件工作,并使用curl ...

  6. JS中将 JSON 数据转换为 Excel 表格的详细步骤如下:

    工作中 后端 那为兄弟 用java把execl的数据转为json格式发我了,他问我能不能用js把josn在转为execl格式 然后 我就开始了 项目地址 下载 xlsx 库 在使用 xlsx 库之前, ...

  7. 细说Golang的JSON解析

    之前一直写一些动态语言,觉得解析JOSN还是很简单的,往往只需要几行代码就能拿到解析好的JSON对象.Go语言自带的json包可以让你在程序中方便的读取和写入 JSON 数据.生成JSON场景相对简单 ...

  8. 使用基于JSON的实体在C#中缓存远程数据

    从GitHub下载最新消息 介绍 除了查询基于JSON / REST的远程服务的简洁方法之外,您通常还需要一种方法来缓存和索引您获取的数据.这对于Web服务尤为重要,因为它们的性质,以及连接服务的延迟 ...

  9. golang中json.Number妙用

    golang中json.Number妙用 最近跟某斯调试一个API接口,接口返回数据是json格式 ,按文档描述是一个整型数据,于是定义如下 type Data struct {Api int `js ...

最新文章

  1. Qt5.9绘制文字(drawText函数)用法
  2. _D类、E类、F类冷藏车是什么意思?
  3. document builder how is document url being generated
  4. 使用混合多云每个人都应避免的3个陷阱(第4部分)
  5. nginx 上传文件漏洞_文件上传及解析漏洞
  6. 区块链教程(四):搭建私链、web3.js基础
  7. 视觉中国网站部分恢复上线? 官方回应:并没有
  8. c语言例题 3/100
  9. vscode-代码文件对比
  10. 使用javascript、Ajax制作前端拟态风格天气预报功能
  11. CSS的Border属性 属性 边框 可以 定义 宽度 颜色 CSS solid 类型 文本
  12. 因特尔显卡自定义分辨率_Win10创建自定义分辨率的方法教程
  13. 华盛顿大学计算机专业gpa,以未决定专业进入大学再转计算机专业可行吗?
  14. 23000字,信息流广告分析基础!
  15. 锁仓怎么解_锁仓后解锁技巧
  16. openharmony常用网站
  17. 哥德巴赫猜想“1+1″的证明(李扩继)
  18. 华为路由交换设备命令集合,建议收藏!
  19. UI设计师高效切图6大步骤
  20. springboot生鲜水果商城销售系统

热门文章

  1. ContentPlaceHolder必须放在具有 runat=server 的窗体标记内
  2. 系统搜索功能不能使用,弹出“无法找到运行搜索助理需要的一个文件”
  3. css学习笔记3--灵活的背景定位
  4. RFID采用率迟迟不涨,原因何在?
  5. Zephir入门 —— 语法篇
  6. oracle查看用户密码时间限制
  7. git用.gitignore忽略指定文件
  8. string和json转换的简单应用
  9. OLTP系统的Oracle RAC性能调优,索引分区极大提升提交性能
  10. 转载:网站取得定向流量的三种方式