表單支援
在 Web 開發中對於這樣的一個流程可能很眼熟:
開啟一個網頁顯示出表單。
使用者填寫並提交了表單。
如果使用者提交了一些無效的資訊,或者可能漏掉了一個必填項,表單將會連同使用者的資料和錯誤問題的描述資訊回傳。
使用者再次填寫,繼續上一步過程,直到提交了一個有效的表單。
在接收端,指令碼必須:
檢查使用者提交的表單資料。
驗證資料是否為正確的型別,合適的標準。例如,如果一個使用者名稱被提交,它必須被驗證是否只包含了允許的字元。它必須有一個最小長度,不能超過最大長度。使用者名稱不能與已存在的他人使用者名稱重複,甚至是一個保留字等。
過濾資料並清理不安全字元,保證邏輯處理中接收的資料是安全的。
如果需要,預格式化資料(資料需要清除空白或者經過 HTML 編碼等等。)
準備好資料,插入資料庫。
儘管上面的過程並不是很複雜,但是通常情況下需要編寫很多程式碼,而且為了顯示錯誤資訊,在網頁中經常要使用多種不同的控制結構。建立表單驗證雖簡單,實施起來實在枯燥無味。
表單和驗證
對於開發者來說,一般開發過程都是相當複雜,而且大多是在重複一樣的工作。假設一個場景專案中忽然需要增加一個表單資料,那麼區域性程式碼的整個流程都需要修改。我們知道 Go 裡面 struct 是常用的一個數據結構,因此 beego 的 form 採用了 struct 來處理表單資訊。
首先定義一個開發 Web 應用時相對應的 struct,一個欄位對應一個 form 元素,透過 struct 的 tag 來定義相應的元素資訊和驗證資訊,如下所示:
定義好 struct 之後接下來在 controller 中這樣操作
在範本中這樣顯示錶單
上面我們定義好了整個的第一步,從 struct 到顯示錶單的過程,接下來就是使用者填寫資訊,伺服器端接收資料然後驗證,最後插入資料庫。
表單型別
以下列表列出來了對應的 form 元素資訊:
表單驗證
以下列表將列出可被使用的原生規則
links
上一節: Session 支援
下一節: 使用者認證
Last updated