一. Django的message框架
官方文档:https://docs.djangoproject.com/en/1.9/ref/contrib/messages/
1. 简介
在web应用程序中,可能在处理表单或其他类型的用户输入后向用户展示一次性通知消息,也成为flash message。
django为匿名和经过身份验证的用户提供了对基于cookie和会话的消息的全支持,其消息框架允许在一个请求中临时存储消息,并检索它们在后续请求中显示(通常是下一个请求)。每条message都使用特定级别标记来确定其优先级。
2. 启用消息框架
消息框架通过Django中间价类和上下文处理时限。
默认的settings.py设置已包含启用消息框架所需的全部设置。
--在installed_app中包含'django.contrib,messages'
--在MIDDLEWARE_CLASSES 中包含 'django.contrib.sessions.middleware.SessionMiddleware' and 'django.contrib.messages.middleware.MessageMiddleware'.
消息默认存储在sessions,这也是必须要启用SessionMiddleware,并且需要放置在MessageMiddleware之前的原因。
--在django templates的context_processer选项中包含django.contrib.messages.context_processors.messages
3. 配置消息引擎
--存储后端
Django在django.contrib.messages中提供三种内置存储类:
storage.session.SessionStorage
存储请求会话内的所有消息。需要Django的contrib.sessions应用程序。
storage.cookie.CookieStorage
将消息数据存储在cookie中(使用秘密哈希签名以防止操作)在请求之间保留通知。如果cookie数据大小超过2048字节,则丢弃旧消息。
storage.fallback.FallbackStorage
首先使用CookieStorage,然后回退使用 SessionStorage不适合单个cookie的消息。它还需要Django的contrib.sessions应用程序。
此行为可以避免尽可能写入会话。一般情况下能提供最佳性能。
--消息级别和message tags
Level Constant | Tag |
---|---|
DEBUG |
debug |
INFO |
info |