Django中message显示
程序员文章站
2022-05-25 13:01:35
...
使用前的准备
这是系统自带的模块,因此倘若你没对settings.py文件没做过什么修改,否则保证下面的字段存在即可;
INSTALLED_APPS {
...
'django.contrib.messages',
...
}
MIDDLEWARE_CLASSES中 {
...
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
...
}
接着你得确保,你在引用任何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,其他类同:
{% if messages %}
<ulclass="messages">
{%for message in messages %}
<li{%if message.tags %} class="{{ message.tags }}"{% endif %}>{{message }}</li>
{%endfor %}
</ul>
{% endif %}
渲染不同类型messages
到目前为止,我们让不同的消息都能显示在页面上了~但是我们得根据不同的消息用不同的渲染啊(如同我用不同的背景色一样)
.messages {
/*Your code */
}
.messages .success {
/*Your code, e.g. background: green */
}
.messages .error {
/*Your code, e.g. background: black */
}
.messages .warning {
/*Your code, e.g. background: red */
}
大家能做的显然不止这样!我们可以给消息提示添加炫丽的动画效果,那得发挥设计能力以及写js代码了…