package main
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
func main() {
s := g.Server()
// 普通返回
s.BindHandler("/", func(r *ghttp.Request) {
r.Response.Write("r.Response.write...")
r.Response.Writeln("r.Response.Writeln...")
r.Response.Writef("r.Response.Writef")
})
// 输出数据后退出当前服务
s.BindHandler("/exit", func(r *ghttp.Request) {
r.Response.WriteExit("xxx")
r.Response.Write("hello")
})
// 返回json格式
s.BindHandler("/json", func(r *ghttp.Request) {
r.Response.WriteJson(g.Map{
"code": 200,
"msg": "ok",
})
})
// 返回xml格式
s.BindHandler("/xml", func(r *ghttp.Request) {
r.Response.WriteXml(g.Map{
"code": 200,
"msg": "ok",
})
})
// 解析模板文件,也可以解析模板内容,本例就直接使用解析模板内容
s.BindHandler("/tpl", func(r *ghttp.Request) {
r.Response.WriteTplContent(` name: {{.name}} age: {{.age}}`, g.Map{
"name": "admin",
"age": 23,
})
})
// 解析模板文件或者模板内容,返回解析后的内容
s.BindHandler("/parse_tpl", func(r *ghttp.Request) {
content, err := r.Response.ParseTplContent(`name: {{.name}} age: {{.age}}`, g.Map{
"name": "admin",
"age": 23,
})
if err != nil {
panic(err)
}
// 返回解析回来的内容
r.Response.Write(content)
})
s.Run()
}
模板解析
package main
import (
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
func main() {
s := g.Server()
// 解析Config配置中的变量
// 访问默认的配置管理(config.toml)对象配置项
s.BindHandler("/config", func(r *ghttp.Request) {
content := `{{.Config.server.host}} {{.Config.server.post}}`
r.Response.WriteTplContent(content, nil)
})
// 访问当前请求的Cookie对象参数值。
s.BindHandler("/cookie", func(r *ghttp.Request) {
r.Cookie.Set("name", "admin")
content := `{{.Cookie.name}}`
r.Response.WriteTplContent(content, nil)
})
// 访问当前请求的Session对象参数值。
s.BindHandler("/session", func(r *ghttp.Request) {
r.Session.Set("uid", "1001")
content := `{{.Session.uid}}`
r.Response.WriteTplContent(content, nil)
})
// 访问当前Query String中的请求参数值。
s.BindHandler("/query", func(r *ghttp.Request) {
content := `{{.Query.name}}`
r.Response.WriteTplContent(content, nil)
})
// 访问当前表单请求参数值。
s.BindHandler("/form", func(r *ghttp.Request) {
content := `{{.Form.username}}`
r.Response.WriteTplContent(content, nil)
})
// Request
s.BindHandler("/request", func(r *ghttp.Request) {
content := `{{.Request.Method}}`
r.Response.WriteTplContent(content, nil)
})
s.Run()
}