作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我将 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 :
- The standard html, its template parser is the golang.org/pkg/html/template/
- Django, its template parser is the github.com/flosch/pongo2
- Pug(Jade), its template parser is the github.com/Joker/jade
- Handlebars, its template parser is the github.com/aymerick/raymond
- Amber, its template parser is the github.com/eknkc/amber
如果您使用标准的 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/
我是一名优秀的程序员,十分优秀!