前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django messages 消息(中)

Django messages 消息(中)

作者头像
小团子
发布2019-07-18 14:56:14
5130
发布2019-07-18 14:56:14
举报
文章被收录于专栏:数据云团数据云团

Django messages 消息(上)

一、配置消息框架引擎

消息框架可以使用不同的后台存储临时消息。

Django 在 django.contrib.messages 中提供三个内建的存储类:

  • class storage.session.SessionStorage 这个类存储所有的消息于请求的会话中。因此,它要求启用 Django 的 contrib.sessions 应用。
  • class storage.cookie.CookieStorage 这个类存储消息数据于 Cookie 中(已经用一个安全的哈希进行签名以防止篡改)以在请求之间传递消息。如果 Cookie 数据的大小将超过 2048 字节,将丢弃旧的消息。
  • class storage.fallback.FallbackStorage 这个类首先使用 CookieStorage,如果消息塞不进一个 Cookie 中则使用 SessionStorage。它同样要求启用 Django 的 contrib.sessions 应用。

这个行为避免每次都写会话。在通常情况下,它提供的性能应该是最好的。

FallbackStorage 是默认的存储类。如果它不适合你的需要,你可以通过设置 MESSAGE_STORAGE 为它的完整导入路径选择另外一个存储类,例如:

代码语言:javascript
复制
MESSAGE_STORAGE = "django.contrib.messages.storage.cookie.CookieStorage"

二、消息级别

消息框架的级别是可配置的,与 Python logging 模块类似。消息的级别可以让你根据类型进行分组,这样它们能够在不同的视图和模板中过滤或显示出来。

django.contrib.messages 导入的消息级别有:

MESSAGE_LEVEL 设置可以用来改变记录的最小级别(它还可以在每个请求中修改)。小于这个级别的消息将被忽略。

若要修改消息级别的默认标签,设置 MESSAGE_TAGS 为包含想要修改的级别的字典。

代码语言:javascript
复制
from django.contrib.messages import constants as messages
MESSAGES_TAGS = {
  messages.INFO: '',
  50: 'critical',
}
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据云团 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档