英文:
Golang+PostgreSQL - How to print exact query without escape HTML tags?
问题
存储在PostgreSQL中的数据:The <b>Argentine Army</b> is
。数据类型:"content" text COLLATE "default"
。
当通过Golang打印时,它变成了The &lt;b&gt;Argentine Army&lt;/b&gt; is
。
我需要从PostgreSQL中打印出精确的数据,而不是转义HTML标签。我不确定这是Go还是PostgreSQL的问题。
以下是我的Golang代码:
package main
import (
"database/sql"
"github.com/labstack/echo"
_ "github.com/lib/pq"
"html/template"
"io"
"log"
"net/http"
)
// 在这里定义Gallery结构体
// 在这里定义Template结构体和相关函数
func main() {
e := echo.New()
// 在这里建立数据库连接
// 在这里解析模板并渲染
e.Get("/", func(c *echo.Context) error {
rows, err := db.Query("SELECT uri, title, content FROM gallery WHERE id=123")
// 在这里处理错误
gallery := []Gallery{}
for rows.Next() {
b := Gallery{}
err := rows.Scan(&b.Uri, &b.Title, &b.Content)
// 在这里处理错误
gallery = append(gallery, b)
}
return c.Render(http.StatusOK, "onlytestingtpl", gallery[0])
})
e.Run(":4444")
}
请注意,我只翻译了代码部分,其他内容不做翻译。
英文:
data stored in PostgreSQL: The <b>Argentine Army</b> is
. Data type: "content" text COLLATE "default"
.
When print through Golang, it become The &lt;b&gt;Argentine Army&lt;/b&gt; is
I need to print exact data from PostgreSQL without escaping HTML tags. I'm not sure if this is Go or PostgreSQL issue.
below is my Golang codes:
package main
import (
"database/sql"
"github.com/labstack/echo"
_ "github.com/lib/pq"
"html/template"
"io"
"log"
"net/http"
)
// type Gallery struct here
// type Template struct & function here
func main() {
e := echo.New()
// DB connection here
// Parse template & render here
e.Get("/", func(c *echo.Context) error {
rows, err := db.Query("SELECT uri, title, content FROM gallery WHERE id=123")
// Handle error here
gallery := []Gallery{}
for rows.Next() {
b := Gallery{}
err := rows.Scan(&b.Uri, &b.Title, &b.Content)
// Handle error here
gallery = append(gallery, b)
}
return c.Render(http.StatusOK, "onlytestingtpl", gallery[0])
})
e.Run(":4444")
}
答案1
得分: 1
这是由HTML模板引起的问题 - 你可以使用以下函数:
func unsafe(x string) template.HTML {
return template.HTML(x)
}
来获取“未转义”的HTML。
英文:
This is caused by html template - you could use a function such as:
func unsafe(x string) template.HTML {
return template.HTML(x)
}
to get the 'unescaped' html.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论