gpt4 book ai didi

html - 如何将变量及其值发送到html

转载 作者:数据小太阳 更新时间:2023-10-29 03:25:22 25 4
gpt4 key购买 nike

我用go写过一小段代码

func loginHandler(w http.ResponseWriter, r *http.Request) {
log.Println("loginHandler")
log.Println("request url is", r.RequestURI)
log.Println("request method", r.Method)
requestbody, _ := ioutil.ReadAll(r.Body)
log.Println("request body is", string(requestbody))
if r.Method == "POST" {
us, err := globalSessions.SessionStart(w, r)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
us.Set("LoggedInUserID", "000000")
w.Header().Set("Location", "/auth")
w.WriteHeader(http.StatusFound)
return
}
outputHTML(w, r, "static/login.html")
}

func outputHTML(w http.ResponseWriter, req *http.Request, filename string) {
log.Println("outputHTML")
requestbody, _ := ioutil.ReadAll(req.Body)
log.Println("request body is", string(requestbody))
log.Println("request body is", requestbody)
file, err := os.Open(filename)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
defer file.Close()
fi, _ := file.Stat()
http.ServeContent(w, req, file.Name(), fi.ModTime(), file)
}

在这段代码中,我重定向到 login.html 。现在我想发送一个变量,让它成为一些名为 testvariable 的字符串,并将其值发送到 login.html。

最佳答案

为了能够在您的 html 中显示值,您可以使用 Go 的 html/template 包。

首先,您需要指定您希望您的值出现在 html 页面中的位置,使用 html/template 包,您可以使用 template actions 来完成此操作.

"Actions"--data evaluations or control structures--are delimited by "{{" and "}}"

接下来您需要删除 http.ServeContent 函数,因为它不知道如何呈现模板,您可以使用 Execute显示登录页面和您的值。

这是一个例子:

login.html:

<html>
<body>
<h1>{{.MyVar}}</h1>
</body>
</html>

输出HTML:

func outputHTML(w http.ResponseWriter, filename string, data interface{}) {
t, err := template.ParseFiles(filename)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
if err := t.Execute(w, data); err != nil {
http.Error(w, err.Error(), 500)
return
}
}

还有你的loginHandler:

func loginHandler(w http.ResponseWriter, r *http.Request) {

// do whatever you need to do

myvar := map[string]interface{}{"MyVar": "Foo Bar Baz"}
outputHTML(w, "static/login.html", myvar)
}

在此处阅读有关模板的更多信息:html/template有关如何对模板本身进行编程的信息,请参阅 text/template 的文档

关于html - 如何将变量及其值发送到html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43473046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com