Golang+PostgreSQL – 如何打印不转义 HTML 标签的精确查询?

huangapple go评论85阅读模式
英文:

Golang+PostgreSQL - How to print exact query without escape HTML tags?

问题

存储在PostgreSQL中的数据:The <b>Argentine Army</b> is。数据类型:"content" text COLLATE "default"

当通过Golang打印时,它变成了The <b>Argentine Army</b> 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 <b>Argentine Army</b> 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.

huangapple
  • 本文由 发表于 2015年6月13日 12:05:16
  • 转载请务必保留本文链接:https://go.coder-hub.com/30814949.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定