@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, как уже было упомянуто выше. Выбор метода зависит от ваших потребностей и предпочтений.