**add_message(request, level, message, extra_tags='', fail_silently=False)**[[source]](https://docs.djangoproject.com/en/1.10/_modules/django/contrib/messages/api/#add_message)
**添加一个message**
如果要添加一个message,请调用:
~~~
from django.contrib import messages
messages.add_message(request, messages.INFO, 'Hello world.')
~~~
还有一些便捷方法,提供了一种标准途径,以常用的标记来添加messages。这些标记通常也是作为这些消息的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.')
~~~
**显示messages**
**get_messages(request)**[[source]](https://docs.djangoproject.com/en/1.10/_modules/django/contrib/messages/api/#get_messages)
在你的模板文件中,使用如下方式编码:
~~~
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
~~~
如果你使用了上下文处理器,你的模板将使用一个**RequestContext**来渲染。如果不是,请确保**messages**在模板上下文中是可用的。
>[warning]即使你明知道只有一条message,你依然需要遍历整个**messages**序列,因为如果不这样的话,那么在下次请求前,message存储就没有被清空。
上下文处理器也提供了一个DEFAULT_MESSAGE_LEVELS变量,将message等级名字映射到相应的数值上:
~~~
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>
{% if message.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %}
{{ message }}
</li>
{% endfor %}
</ul>
{% endif %}
~~~
在模板文件外部,你可以使用[**get_messages()**](https://docs.djangoproject.com/en/1.10/ref/contrib/messages/#django.contrib.messages.get_messages):
~~~
from django.contrib.messages import get_messages
storage = get_messages(request)
for message in storage:
do_something_with_the_message(message)
~~~
比如,你可以获取所有的messages,然后使用[**JSONResponseMixin**](https://docs.djangoproject.com/en/1.10/topics/class-based-views/mixins/#jsonresponsemixin-example)返回它们,而不使用[**TemplateResponseMixin**](https://docs.djangoproject.com/en/1.10/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin)
[**get_messages()**](https://docs.djangoproject.com/en/1.10/ref/contrib/messages/#django.contrib.messages.get_messages)将返回一个已配置的存储后端实例