來自<
>
先簡單說一下這裡的訊息提示是什麼意思,以及其被需求的程度。比如你上乙個任何乙個**,當你進行某項操作(例如提交表單或者刪除乙個好友等),**可能會彈出乙個訊息框,告訴你你完成了某項操作;相反的,當你進行某項非法操作時,比如你在**號碼的輸入框裡輸入了你的郵箱,人性化的**也許會友好地彈出個框告訴你,你的操作有誤。上面兩個例子共同告訴了我們什麼是訊息提示,以及閉上眼睛我們都能想像它的重要性。
先說說之前沒有接觸django中messages模組時我的實現方法。我們都知道,django裡的乙個頁面和views.py中的乙個函式有著密不可分的關係,甚至大部分情況是乙個頁面對應乙個函式,所以呢?我在需要顯示訊息提示的頁面所對應的函式裡維護乙個error或者messages的變數,然後在模板渲染時,也就是template檔案中,對error和messages進行判斷,有則顯示,反之忽略。這樣的方法雖然笨,但是許多情況還是能符合我的要求的,但是直到…
比如說,現在有這麼個需求,我在**註冊賬號,賬號註冊之後緊接著我想「完成註冊的使用者」順理成章地進入「編輯頭像的頁面」,但是我的笨方法只能在當前頁面顯示當前頁面的資訊,而我想做的是,在跳轉到「編輯頭像頁面」之後在頂端顯示其已經成功註冊賬號,並歡迎他編輯頭像。沒有想明白?說白了,我想做的就是在乙個頁面顯示另乙個頁面的訊息提示,而我的之前慣用的方法不可行!
所以我介紹一下djangomessages模組的用法,因為它確實實用,前面這麼多廢話也是想讓大家明白它的使用場景。
使用前的準備
這是系統自帶的模組,因此倘若你沒對settings.py檔案沒做過什麼修改,否則保證下面的字段存在即可;
...'django.contrib.messages',
...}
middleware_classes中
接著你得確保,你在引用任何messages的地方包含fromdjango.contrib import messages…
在views.py中操作
messages預設有幾種型別,比如success,info,error,warning等,當然你也可以自定義一種型別。messages有兩種新增方式,你可以在任何你想要顯示訊息提示的地方使用下面兩種方法的任意一種.就是這麼簡單~
# method #1
messages.success(request,'hello world.')
messages.error(request,'i am wrong')
# method #2
messages.add_message(request,messages.success, 'hello world.')
如何顯示messages
個人認為作為乙個**而言,如何顯示訊息提示如果能做到統一格式將會是一件好事,你覺得?因此我的想法是這樣的,每次有訊息提示時我都讓它顯示在**頂端幾秒鐘,然後慢慢漸隱掉,但是根據不同的訊息型別顯示不同的訊息背景色,比如錯誤訊息用黑色,成功訊息用綠色,警告用紅色等等.下面告訴大家怎麼做.
這種整個**都需要的渲染顯然得放在template的base.html裡對吧~?在body標籤內新增如下**,messages.tags是訊息格式,如果是sucess訊息,則其值為success,其他類同:
渲染不同型別messages
到目前為止,我們讓不同的訊息都能顯示在頁面上了~但是我們得根據不同的訊息用不同的渲染啊(如同我用不同的背景色一樣)
.messages
.messages .success
.messages .error
.messages .warning
大家能做的顯然不止這樣!我們可以給訊息提示新增炫麗的動畫效果,那得發揮設計能力以及寫js**了…
再複雜一點點
除了上面的說的可以自定義訊息型別,我們還可以遮蔽某些種類的訊息等等,這些功能你得自己去挖掘啦~
Django中提示訊息messages的設定方式
1.引入messages模組 from django.contrib import messages 2.把messages寫入view中 csrf exempt def search request if request.method get bookname request.get.get bo...
c 中使用訊息
摘自 在c 中,程式採用了的驅動採用了事件驅動而不是原來的訊息驅動,雖然.net框架提供的事件已經十分豐富,但是在以前的系統中定義了豐富的訊息對系統的程式設計提供了方便的實現方法,因此在c 中使用訊息有時候還是大大提高程式設計的效率的。定義訊息 在c 中訊息需要定義成windows系統中的原始的6進...
django中使用日誌
配置日誌檔案的使用 logging 日誌格式 filters handlers default error console request handler scprits handler loggers django.request scripts blog.views 在views 檢視函式中使用...