Go 从零开始(四)表单提交


一、创建表单

打印 html 标签字符串,并动态加入表单提交的路径。

func articlesCreateHandler(w http.ResponseWriter, r *http.Request) {
    html := `

"en">

    创建文章


    
"%s" method="post">

"text" name="title">

` storeURL, _ := router.Get("articles.store").URL() fmt.Fprintf(w, html, storeURL) }

二、接收表单提交的数据

上一步表单提交到了 store 方法。所以在以下 store 方法中可以获取表单数据。

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

    err := r.ParseForm()
    if err != nil {
        // 解析错误,这里应该有错误处理
        fmt.Fprint(w,  "请提供正确的数据!")
        return
    }

    // PostForm 获取 post put 数据
    // 在使用之前需要调用 ParseForm 方法
    title := r.PostForm.Get("title")

    // Form 获取 post put get 数据
    // 在使用之前需要调用 ParseForm 方法
    title := r.Form.Get("title")

    // FormValue()、PostFormValue() 获取单个的值
    // 无需调用 ParseForm 方法
    title := r.PostFormValue("title")

    fmt.Fprintf(w, "PostForm: %v 
", r.PostForm) fmt.Fprintf(w, "Form: %v
", r.Form) fmt.Fprintf(w, "title: %v", title) }