标题:django messages framework | 作者: catfish | 时间:2019年12月08日
暂无法显示图片

django messages framework感觉算是一个内容较少比较好理解的位置了。相比其他来讲。首先我们先聊一下基本使用。如果没有什么特殊需要的话,这个框架的用法完全可以由一个字典中附加一个字符串来代替。但是这样使用可能看上去更加的高级,而且当你遇到什么奇葩需求时,你可能用这个框架更容易满足这个需求。

启用消息框架

1,django.contrib.message  在INSTALL_APPS中

2,MIDDLEWARE中包含 'django.contrib.sessions.middleware.SessionMiddleware'和'django.contrib.messages.middleware.MessageMiddleware'

默认的消息储存需要会话支持,所以会话必须放在消息储存之前。

3,TEMPLATES设置中包含django.contrib.messages.middleware.MessageMiddleware。

选择一个消息引擎进行配置

你有三种引擎可以选择:storage.session.SessionStorage,storage.cookie.CookieStorage,storage.fallback.FallbackStorage。最后一个是默认引擎。
如果你觉得默认引擎不适合你,你可以选择其他的引擎:

MESSAGE_STORAGE = 'django.contrib.message.storage.cookie.CookieStorage'

如果你想编写自定义引擎。你需要继承django.contrib.message.storage.base.BaseStorage类。然后重写_get和_store方法。

消息种类

消息种类 tags 消息意义 消息级别 level
DEBUG 在生产部署中将会被忽略,与开发相关的消息 10
INFO 给用户参考的信息 20
SUCCESS 操作成功的信息 25
WARNING 有潜在危险的信息 30
ERROR 报错,错误消息

40

 

from django.contrib import messages

messages.get_level(request, messages.SUCCESS)   # 设置最低级别
messages.add_message(request, messages.INFO, '这里写你要提示的字符串')
all_message = messages.get_messages(requests)

常用标签的快捷方法:

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.')

如何显示标签

<!-- templates -->
{% for message in messages %}
{{ message.tags }}
{{ message }}
{{ message.level }}
{% endfor %}

 

我要评论

没有登录?请先登录后再评论

最新评论

暂无人评论,来抢个沙发吧!