需求:
用戶訪問get請i去,然后提交表單數據到post請求,在post請求中驗證數據,如果驗證不通過則提示不通過的消息,通過則提示成功的消息,然后重定向到get請求,get請求訪問相應的頁面,成功的話訪問成功的頁面,失敗的訪問失敗的頁面,**這就是一個消息提示,**可以使用flash來進行數據的傳遞
beego中的flsh:
* 這不是Adobe旗下的flsh產品
* flash 對象有三個級別的設置:
* Notice 提示信息
* Warning 警告信息
* Error 錯誤信息
* 模板中讀取數據:
* { {.flash.error} } //錯誤 { {.flash.warning} } // 警告
{ {.flash.notice} } // 成功
示例:
~~~
type ValidateController struct {
? beego.Controller
}
?
func (c *ValidateController) Get() {
? // 獲取flash中的數據,如果沒有則跳轉到表單頁,否則跳轉到對應的提示頁
? flash:=beego.ReadFromRequest(&c.Controller)
? notice := flash.Data["notice"]
? err := flash.Data["error"]
?
? if len(notice) != 0 {// notice提示信息有數據,跳轉到成功頁
? ? ? c.TplName = "success.html"
? }else if len(err) != 0{// error提示信息有數據,跳轉到失敗頁
? ? ? c.TplName = "error.html"
? }else { // 沒數據,跳轉到表單頁
? ? ? c.TplName = "validate.html"
? }
?
?
}
?
func (c *ValidateController)Post() {
? // 初始化flash
? flash:=beego.NewFlash()
?
? username := c.Input().Get("username")
? if len(username) == 0 {
? ? ? flash.Error("用戶名不能為空")
? ? ? flash.Store(&c.Controller) ? ? ? ? ? ? ? ? ? ? // 保存flash數據
? ? ? c.Redirect("/flash_validate",302) ? ? ? ? ? ? ? // 重定向
? }else if username != "zhiliao"{
? ? ? flash.Error("用戶名錯誤")
? ? ? flash.Store(&c.Controller) ? ? ? ? ? ? ? ? ? ? // 保存flash數據
? ? ? c.Redirect("/flash_validate",302) ? ? ? ? ? ? ? // 重定向
? }else {
? ? ? flash.Notice("驗證通過")
? ? ? flash.Store(&c.Controller) ? ? ? ? ? ? ? ? ? ? // 保存flash數據
? ? ? c.Redirect("/flash_validate",302) ? ? ? ? ? ? ? // 重定向
? }
?
?
}
~~~
上面的代碼執行的大概邏輯是這樣的:
1. Get 方法執行,因為沒有 flash 數據,所以顯示設置頁面。
2. 用戶設置信息之后點擊遞交,執行 Post,然后初始化一個 flash,通過驗證,驗證出錯或者驗證不通過設置 flash 的錯誤,如果通過了就保存設置,然后設置 flash 成功設置的信息。
3. 設置完成后跳轉到 Get 請求。
4. Get 請求獲取到了 Flash 信息,然后執行相應的邏輯,如果出錯顯示出錯的頁面,如果成功顯示成功的頁面。
- go環境搭建
- 解決go get網絡慢的問題
- beego的安裝
- bee的安裝
- 編輯器
- go module
- 配置文件詳解
- 配置文件其他說明
- 路由方法
- 路由
- 數據校驗
- 校驗函數
- 頁面跳轉
- 獲取前端數據
- json文件的獲取
- xsrf的用法
- xsrf的防護
- srfs和json的搭配
- flash的用法
- 過濾器
- url反轉
- 各類數據的處理
- 模板函數
- 內置模板函數
- 自定義模板函數
- 模板
- 模板處理
- 模板渲染
- 視圖文件的處理
- 靜態文件
- 請求方式判斷
- 驗證碼
- 另一種方法
- 分頁類
- session
- 登錄判斷
- orm模塊
- 使用方法
- mysql的安裝
- 安裝orm及驅動
- 建立模型
- 自定義模型
- 增刪改查
- 高級查詢
- 常見問題匯總
- 代碼收藏
- 打包部署
- go build打包
- utils收藏
- 新goer容易犯的錯
- 字符串操作