我正在用Go编写Web服务器,并问自己,有条件隐藏HTML页面一部分的常规方式是什么。如果我只想显示一个“登录”按钮,那么当用户未登录时,我将如何实现这样的目标?它是通过模板引擎还是其他工具实现的?
感谢您抽出宝贵的时间阅读和回答这个问题:)
您只需为模板提供结构并管理其中的渲染。
这是一个工作示例进行测试:
package main import ( "html/template" "net/http" ) func main() { http.HandleFunc("/", helloHandler) http.ListenAndServe(":8000", nil) } type User struct { Name string } func helloHandler(w http.ResponseWriter, r *http.Request) { t := template.New("logged exemple") t, _ = t.Parse(` <html> <head> <title>Login test</title> </head> <body> {{if .Logged}} It's me {{ .User.Name }} {{else}} -- menu -- {{end}} </body> </html> `) // Put the login logic in a middleware p := struct { Logged bool User *User }{ Logged: true, User: &User{Name: "Mario"}, } t.Execute(w, p) }
要管理连接,您可以将http://www.gorillatoolkit.org/pkg/sessions与https://github.com/codegangsta/negroni一起使用,并在中间件内部创建连接逻辑。