>  기사  >  백엔드 개발  >  Go 언어에서 템플릿 엔진을 사용하는 방법

Go 언어에서 템플릿 엔진을 사용하는 방법

藏色散人
藏色散人앞으로
2020-09-12 13:29:564450검색

다음 칼럼에서는 golang tutorial 칼럼에서 Go 언어의 템플릿 엔진 사용법을 소개하겠습니다. 필요한 친구들에게 도움이 되길 바랍니다!

Go 언어에서 템플릿 엔진을 사용하는 방법

1 개요

응답 본문을 처리할 때 가장 일반적인 방법은 처리된 HTML 코드를 보내는 것입니다. 데이터를 HTML에 삽입해야 하므로 템플릿 엔진이 최선의 선택입니다.

Go 언어는 템플릿 엔진의 관련 기능을 구현하기 위해 html/template 패키지를 제공합니다. 빠른 사용 예: html/template 包,实现模板引擎的相关功能。快速使用示例:

main.go

package mainimport (
  "html/template"
  "log"
  "net/http")func main() {
  // 设置 处理函数
  http.HandleFunc("/", TestAction)
   开启监听(监听浏览器请求)
  log.Fatal(http.ListenAndServe(":8084", nil))}func TestAction(w http.ResponseWriter, r *http.Request) {
  // 解析模板
  t, _ := template.ParseFiles("template/index.html")
  // 设置模板数据
  data := map[string]interface{}{
    "User": "小韩说课",
    "List": []string{"Go", "Python", "PHP", "JavaScript"},
  }
  // 渲染模板,发送响应
  t.Execute(w, data)}

template/index.html

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>小韩说课</title></head><body>Hello, {{ .User }}<br>你熟悉的技术:<ul>{{ range .List }}    <li>{{.}}</li>{{end}}</ul></body></html>

Go 언어에서 템플릿 엔진을 사용하는 방법:

Go 언어에서 템플릿 엔진을 사용하는 방법

以上代码就完了模板引擎的基本使用,包括解析模板,渲染数据,响应结果操作。接下来详细说明。

2 解析模板

函数 template.ParseFiles(filenames ...string) (*Template, error) 可以解析模板文件,并得到模板对象。参数为模板文件。同时会以模板文件的文件名(不包含后缀名)作为模板的名字。

还可以使用 template.New("name").Parse(src string) 来创建模板对象,并完成解析模板内容。

3 应用数据并发送响应

函数 func (t *Template) Execute(wr io.Writer, data interface{}) error 将 data 应用到解析好的模板上,并将输出写入 wr。如果执行时出现错误,会停止执行,但有可能已经写入wr部分数据。

data 数据可以接受任意类型,最常见的类型为:map[string]interface{},通过不同的下标来区分部分的分配数据。在模板中使用 .User.List

main.go

rrreee
template/index.html
rrreee🎜실행 결과: 🎜🎜Execution Result🎜🎜위 코드는 템플릿 구문 분석, 데이터 렌더링 및 응답 결과 작업 . 자세한 내용은 다음과 같습니다. 🎜🎜2 템플릿 구문 분석 🎜🎜 함수 template.ParseFiles(filenames ...string) (*Template, error)는 템플릿 파일을 구문 분석하고 템플릿 개체를 가져올 수 있습니다. 매개변수는 템플릿 파일입니다. 동시에 템플릿 파일의 파일 이름(접미사 제외)이 템플릿 이름으로 사용됩니다. 🎜🎜template.New("name").Parse(src string)을 사용하여 템플릿 개체를 생성하고 템플릿 콘텐츠 구문 분석을 완료할 수도 있습니다. 🎜🎜3 데이터 적용 및 응답 보내기🎜🎜Function func (t *Template) Execute(wr io.Writer, data interface{}) error 파싱된 템플릿에 데이터 적용 및 출력 Write wr. 실행 중 오류가 발생하면 실행은 중지되지만 wr의 일부 데이터가 기록되었을 수 있습니다. 🎜🎜데이터 데이터는 모든 유형을 수용할 수 있으며, 가장 일반적인 유형은 map[string]interface{}입니다. 할당된 데이터의 일부는 다양한 첨자로 구별됩니다. 할당 데이터의 사용자 및 목록에 액세스하려면 템플릿의 .User, .List를 사용하세요. 🎜🎜끝! 🎜🎜

위 내용은 Go 언어에서 템플릿 엔진을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제