更新時間:2021年05月28日16時50分 來源:傳智教育 瀏覽次數:
(1)問題分析
面試官主要想考察的是在網頁應用中,需要在處理完表單或其它類型的用戶輸入后,顯示一個通知消息(也叫做“flash message”)給用戶。
(2)核心問題講解
Django后臺可以使用django-push-notifications 推送模塊來進行消息推送,也可以在Django中使用Message框架向模板中推送消息內容。(https://yiyibooks.cn/xx/django_182/ref/contrib/messages.html)
App中的推送有兩種方式,第一種是自己研發(fā)的,但由于研發(fā)成本高,所以大多數都采用第二種方式,也就是使用第三方工具進行推送,比如極光推送、個推、百度云推送、華為推送等。
(3)問題擴展
App有本地推送和遠程推送。
本地推送通知:本地通知不需要連接網絡,一般是開發(fā)人員在合適的情況下在App內發(fā)送通知,適用于能確定在某個時間時需要提醒用戶的場景。
遠程推送通知:遠程通知必須需要連接網絡,遠程推送服務又稱為APNs(Apple Push Notification Services),一般是服務器端發(fā)送通知。
對于用戶,通知一般是指的推送通知,即本地推送通知和遠程推送通知。
(4)結合項目中使用
在視圖和模板中使用消息,可通過如下方法:
add_message(request, level, message, extra_tags='', fail_silently=False)
新增一條消息可通過如下方式:
from django.contrib import messages messages.add_message(request, messages.INFO, 'Hello world.')
有幾個快捷方法提供標準的方式來新增消息并帶有常見的標簽(這些標簽通常表示消息的HTML 類型),具體如下所示。
messages.debug(request, '%s SQL statements were executed.' % count) messages.info(request, 'Three credits remain in your account.') messages.success(request, 'Profile details updated.') messages.warning(request, 'Your account expires in three days.') messages.error(request, 'Document deleted.')