Hi
直接输出文本
package main
import "github.com/kataras/iris"
func main() {
iris.Get("/hi", func(ctx *iris.Context) {
ctx.Writef("Hi %s", "iris")
})
iris.Listen(":8080")
}
或者:
package main
import "github.com/kataras/iris"
func main() {
api := iris.New()
api.Get("/hi", hi)
api.Listen(":8080")
}
func hi(ctx *iris.Context){
ctx.Writef("Hi %s", "iris")
}
HTML 上输出文本
`templates/hi.html` 文件的内容(以优化原书此处代码):
<!-- ./templates/hi.html -->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="data:;base64,iVBORw0KGgo=" type="image/x-icon">
<title>{{.PageTitle}}</title>
</head>
<body>
<h1> Hello, {{.Name}}! </h1>
{{greet .Name }}
</body>
</html>
main.go
文件(原书此处代码有误,已更正):
// ./main.go
package main
import (
"github.com/kataras/iris"
"github.com/kataras/iris/context"
)
func main() {
app := iris.New()
// 注册模板: 开始
tmpl := iris.HTML("./templates", ".html")
tmpl.Reload(true)
//为 html 添加自定义函数
tmpl.AddFunc("greet", func(s string) string {
return "你好啊 " + s + "!"
})
app.RegisterView(tmpl)
// 注册模板,结束
/*
如果不需要向 html 中注入函数,可以直接注册特定目录下的 html 为模板
app.RegisterView(iris.HTML("./templates", ".html"))
*/
// 注册路由
app.Get("/hi", hi)
/*
或
app.Run(iris.Addr(":8082"))
*/
app.Run(iris.Addr(":8082"), iris.WithCharset("UTF-8"))
}
func hi(ctx context.Context) {
ctx.Gzip(true)
// 为 html 添加变量
ctx.ViewData("PageTitle", "Hi Page")
ctx.ViewData("Name", "Iris")
ctx.View("hi.html")
}
还可使用类 Django-syntax :
<!-- ./django/hi.html -->
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="data:;base64,iVBORw0KGgo=" type="image/x-icon">
<title>{{ PageTitle }}</title>
</head>
<body>
<h1> Hello, {{Name}}! </h1>
{{ greet(Name) }}
</body>
</html>
// ./main.go
import (
"github.com/kataras/iris"
"github.com/kataras/go-template/django"
)
func main() {
iris.UseTemplate(django.New()).Directory("./templates", ".html")
iris.Get("/hi", hi)
iris.Listen(":8080")
}
func hi(ctx *iris.Context){
ctx.Render("hi-django.html", map[string]interface{}{"Name": "iris"}, iris.RenderOptions{"gzip":true})
}
更多渲染器和模板引擎:点这里,点这里