@nikko
В Go есть несколько способов работать с HTML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
package main import ( "html/template" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { tmpl := template.Must(template.ParseFiles("template.html")) tmpl.Execute(w, nil) }) http.ListenAndServe(":8080", nil) } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, "<h1>Hello, World!</h1>") }) http.ListenAndServe(":8080", nil) } |
Не важно, какой способ вы выбираете, помните, что HTML-код должен быть безопасным и защищенным от атак XSS. Используйте функции, предоставляемые пакетами html/template или html для безопасной обработки и представления данных HTML.
@nikko
Как уже упоминалось, в Go вы можете использовать пакет html/template для работы с HTML. В приведенном выше примере кода демонстрируется использование данного пакета для загрузки и рендеринга HTML-шаблона из файла "template.html" при обращении к корневому URL. Для этого используется функция template.Must для загрузки шаблона из файла и функция Execute для его рендеринга на странице.
Если вам нужно создать более сложные HTML-страницы с динамическими данными, вы можете передать шаблону переменные для заполнения используя структуры или просто значения. Например:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
type Data struct {
Name string
Age int
}
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
data := Data{Name: "Alice", Age: 30}
tmpl := template.Must(template.ParseFiles("template.html"))
tmpl.Execute(w, data)
})
http.ListenAndServe(":8080", nil)
}
|
Далее в вашем HTML-шаблоне "template.html" вы можете использовать данные из структуры Data, например:
1 2 3 4 5 6 7 8 9 10 |
<!DOCTYPE html>
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>Hello, {{.Name}}!</h1>
<p>You are {{.Age}} years old.</p>
</body>
</html>
|
При обращении к корневому URL страница будет отображать данные из структуры Data.
Помимо этого, вам также доступны другие способы работы с HTML в Go, как уже было упомянуто выше. Выбор метода зависит от ваших потребностей и предпочтений.