go - 如何在 IRIS 中禁用自动转义

标签 go escaping go-iris

我将 HTML 标签插入到数据库表中:

<table>
<tr>
   <td>1</td>
   <td>2</td>
   <td>3</td>
</tr>
</table>

并将检索到的数据发送到 View 中

func MyEvent(ctx iris.Context){
        rows := ...
        ctx.ViewData("rows", rows[0])
        ctx.View("template.html")
}

如何才能在此事件中禁用自动转义?

最佳答案

如何通过模板获取原始 HTML 并将其输出到输出中取决于您在 Iris 中使用的模板引擎。 Iris supports five template engines out-of-the-box :

如果您使用标准的 html/template 包,那么您可以使用 template.HTML 类型将字符串标记为“安全 HTML”:

ctx.ViewData("rows", template.HTML(rows[0]))

或添加您自己的过滤器,它只执行return template.HTML(s) 并在模板中使用它。

如果您使用 Handlebars,那么您将使用 {{{...}}} in the template or raymond.SafeString in a helper :

{{{yourHTML}}}

如果您使用的是其他模板引擎之一,那么您可以使用它们提供的任何机制来通过模板获取原始 HTML。

当然,所有这些都假定您在 HTML 进入数据库之前或从数据库到模板之前对 HTML 进行清理和清理。

关于go - 如何在 IRIS 中禁用自动转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48728991/

相关文章:

json - 如何解析json post请求

mysql - Golang Net.IP 到 IPv6(来自 MySQL)作为 Decimal(39,0) 转换?

google-app-engine - 只能从 Google App Engine golang 应用程序访问请求日志

c# - 如何正确地将字符串传递给ffmpeg?

html - Tumblr 主题在 JavaScript 中获取帖子的标签

amazon-web-services - 如何使用 go-iris 框架将 REST API 部署到 AWS lambda

authentication - Golang 网络爬虫 NTLM 身份验证

mysql - 有没有办法在 Go 中使用 MySQL 临时表?

javascript - 如何在 JS 中的变量上添加(或附加)变量

go - 如何在 Iris 中解析查询字符串