第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何執(zhí)行模板

如何執(zhí)行模板

Go
叮當(dāng)貓咪 2022-09-19 17:20:00
在此代碼中,我正在嘗試執(zhí)行函數(shù)中存在的 。tmpl.ExecuteTemplate(res, "about.html", d)showAbout()在文件中,我有兩個(gè)函數(shù)。第一個(gè)是,第二個(gè)是。 函數(shù)檢查授權(quán),授權(quán)成功后,進(jìn)入具有if語(yǔ)句的函數(shù)。handler.goshowAbout()about()about()showAbout()如果數(shù)據(jù)庫(kù)中的 about 字段為空,則應(yīng)執(zhí)行 ,獲取數(shù)據(jù)并將其插入到數(shù)據(jù)庫(kù)中。aboutform.html如果數(shù)據(jù)已成功插入,則顯示消息并返回以在此處顯示數(shù)據(jù)。about.html只有不執(zhí)行。盡管給出了成功消息。about.html關(guān)于.html<section>   <h1>About</h1>   <hr>   <p>{{.Aboutdata}}</p></section>關(guān)于形式.html<form action="/about" method="POST">    <section>        <label>Content</label>        <textarea name="content"></textarea>        <div>            <input type="submit" value="Submit">        </div>    </section></form>數(shù)據(jù)庫(kù)func Insertdata(key, value string) bool {    collection := Connect.Database("webApp3").Collection("data")    filter := bson.M{"email": Account.Email, "password": Account.Password}    update := bson.M{        "$set": bson.M{            key: value,        },    }    _, err := collection.UpdateOne(context.TODO(), filter, update)    return err == nil}處理程序.gofunc showAbout(res http.ResponseWriter, req *http.Request) {    d := struct{ Aboutdata string }{Aboutdata: database.Account.About}    if d.Aboutdata == "" {        tmpl.ExecuteTemplate(res, "aboutform.html", nil)        content := req.FormValue("content")        inserted := database.Insertdata("about", content)        if inserted == true {            fmt.Println("About is successfully inserted")            tmpl.ExecuteTemplate(res, "about.html", d)   // It is not executing the about.html file        } else {            fmt.Println("About is not inserted")        }    } else {        tmpl.ExecuteTemplate(res, "about.html", d)    // Although this same file is executing here.    }}
查看完整描述

1 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

下面是你的關(guān)于處理程序的外觀示例。請(qǐng)記住,該示例只是使用單個(gè)處理程序處理 GET 和 POST 請(qǐng)求的通用結(jié)構(gòu)的圖示。據(jù)我所知,您問(wèn)題中的代碼包含許多其他邏輯錯(cuò)誤,您仍然需要解決這些錯(cuò)誤。


請(qǐng)注意,呈現(xiàn)模板和處理數(shù)據(jù)輸入的邏輯在 GET 和 POST HTTP 方法之間拆分。某些路由器允許基于方法的處理程序注冊(cè),在這種情況下,您可以有兩個(gè)單獨(dú)的處理程序,一個(gè)用于,另一個(gè)用于或某物。showAboutcreateAbout


考慮到塊的結(jié)構(gòu),此示例中的語(yǔ)句的使用是不必要的,但是,我確實(shí)包含它們以明確說(shuō)明,一般來(lái)說(shuō),一旦您寫入響應(yīng),您就不應(yīng)該有任何其他響應(yīng)寫入代碼:no ,不再調(diào)用等。returnif-elsehttp.RedirectExecuteTemplate


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

    if r.Method == "GET" {

         if data_is_present {

             if err := t.ExecuteTemplate(w, "about.html", nil); err != nil {

                 fmt.Println(err)

             }

             return

         } else if data_is_NOT_present {

             if err := t.ExecuteTemplate(w, "aboutform.html", nil); err != nil {

                 fmt.Println(err)

             }

             return

         }

    } else if r.Method == "POST" {

        content := r.FormValue("content")

        inserted := database.Insertdata("about", content)

        if inserted == true {

            d := struct{ Aboutdata string }{Aboutdata: content}

            if err := t.ExecuteTemplate(w, "about.html", d); err != nil {

                fmt.Println(err)

            }

            return

        } else {

            fmt.Println("About is not inserted")

            return

        }

    }

}


查看完整回答
反對(duì) 回復(fù) 2022-09-19
  • 1 回答
  • 0 關(guān)注
  • 82 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)