• go web开发第5讲-表单操作


    表单处理

    我们都知道,一个动态网站的核心就是数据的交互。而如何进行数据的交互,答案就是表单。我们通过提交表单,将需要保存的数据提交给后台处理程序。后台处理程序在经过过滤等其他处理,然后保存到数据库中。但我们需要展现他们的时候,我们再从数据库中取出他们。

    首先简单介绍下什么是表单。表单是html中的一个基本元素,它设计的目的就是为了数据的交互。有两种提交表单的方式,一种是get,一种是post.

    下面主要讲解go web中如何处理表单。

    1. 编写html表单页面,action为需要提交的后台处理url.
    2. 编写表单处理逻辑,嗲用request parseForm方法进行表单接收 r.PostForm.Get(“title”)接收具体的表单值
    3. 编写回显表单处理结果
    <form method="post" action="formadd">
    
    <textarea name="title"></textarea>
    
    <button type="submit">添加新闻</button>
    
    </form>
    

    method是提交表单的方式,get是在url中提交,post是在header中提交

    name是要提交给后台接收的值,这里是title.

    func handleFormAdd(w http.ResponseWriter, r *http.Request) {
    
     r.ParseForm()
    
     title := r.PostForm.Get("title")
    
     //TODO:将数据保存到数据库,然后再显示到页面上
    
     db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test_new")
    
     if err != nil {
    
     panic(err)
    
     }
    
    
     db.Exec("insert into news set title = ?", title)
    
    
    }
    

    这里我们调用r.ParseForm()对表单提交的title字段进行接收,然后插入到数据库中。

    func handleForm(w http.ResponseWriter, r *http.Request) {
    
     //数据库获取数据
    
     db, err := sql.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test_new")
    
     if err != nil {
    
     panic(err)
    
     }
    
    
     rows, err := db.Query("select id,title from news")
    
    
     if err != nil {
    
     panic(err)
    
     }
    
    
     var (
    
     id string
    
     title string
    
     )
    
     var news []string
    
    
     for rows.Next() {
    
     rows.Scan(&id, &title)
    
     news = append(news, title)
    
     }
    
    
     templates.ExecuteTemplate(w, "form.html", news)
    
    }
    

    然后我们调用handleForm方法回显表单处理结果,将新插入的数据显示在表单上。

  • 相关阅读:
    SCCM 2012系列之新特性
    本地用户管理
    ISA中的WEB链
    Windows Server 2012远程刷新客户端组策略,IE代理设置
    关于单一网络适配器拓扑TMG
    IP及DNS设置(Netsh)
    MIPI接口
    液晶屏MIPI接口与LVDS接口区别(总结)
    色彩和光的知识
    LED全彩显示屏色度空间
  • 原文地址:https://www.cnblogs.com/itdreamfly/p/12871591.html
Copyright © 2020-2023  润新知