思考并回答以下问题:
各种数据格式的响应
json、结构体、XML、YAML、ProtoBuf
1 | package main |
HTML模板渲染
- gin支持加载HTML模板, 然后根据模板参数进行配置并返回相应的数据,本质上就是字符串替换
- LoadHTMLGlob()方法可以加载模板文件
1 | package main |
1 |
|
目录结构:
如果你的目录结构是下面的情况
代码如下:
1 | package main |
1 | {{ define "user/index.html" }} |
如果你想进行头尾分离就是下面这种写法了:
1 | package main |
user/index.html文件代码:1
2
3
4
5{{ define "user/index.html" }}
{{template "public/header" .}}
fgkjdskjdsh{{.address}}
{{template "public/footer" .}}
{{ end }}
public/header.html文件代码:1
2
3
4
5
6
7
8
9
10
11
12{{define "public/header"}}
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>{{.title}}</title>
</head>
<body>
{{end}}
public/footer.html文件代码:1
2
3
4{{define "public/footer"}}
</body>
</html>
{{ end }}
如果你需要引入静态文件需要定义一个静态文件目录1
r.Static("/assets", "./assets")
重定向
1 | package main |
同步异步
- goroutine机制可以方便地实现异步处理
- 另外,在启动新的goroutine时,不应该使用原始上下文,必须使用它的只读副本
1 | package main |