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})
}

更多渲染器和模板引擎:点这里,点这里

results matching ""

    No results matching ""