**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)將返回一個已配置的存儲后端實例