Django.contrib.messages 的消息处理器
Django.contrib.messages 是 Django 框架中用于处理基于 web 的消息的模块,在用户界面中经常使用,例如:
- 验证表单时显示错误消息
- 用户登录成功后显示欢迎消息
- 操作成功后显示成功消息
- 操作失败后显示错误消息
Django.contrib.messages 模块提供了一种简单且一致的方式来处理这些消息,它包括以下几个部分:
- 存储消息:存储消息到 session 中
- 显示消息:从 session 中获取消息并在页面上显示
- 删除消息:在读取完消息后从 session 中删除消息
在项目中 settings.py 文件中,需要配置 Django.contrib.messages 的消息处理器:
# 必须要配置的设置 MESSAGE_STORAGE = 'django.contrib.messages.storage.session.SessionStorage' # 可选设置 MESSAGE_TAGS = { messages.DEBUG: 'debug', messages.INFO: 'info', messages.SUCCESS: 'success', messages.WARNING: 'warning', messages.ERROR: 'danger', }
在视图函数中使用 messages 模块来存储消息,例如:
from django.contrib import messages def my_view(request): messages.success(request, '操作成功') messages.error(request, '操作失败,请稍后再试') return render(request, 'my_template.html')
在模板中使用 messages 模块来显示消息,例如:
{% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %}
以上代码将显示保存在 session 中的所有消息,也可以根据消息类型展示不同的样式,例如 success 标签代表操作成功,可以使用绿色背景标记。
演示代码如下:
from django.contrib import messages from django.shortcuts import render def index(request): messages.success(request, 'pidancode.com 欢迎您') messages.warning(request, '请不要在本站输入敏感信息') messages.error(request, '操作失败,请稍后再试') return render(request, 'index.html')
模板代码如下:
{% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %}
当渲染 index.html 模板时,系统会根据存储在 session 中的消息生成相应的 HTML 代码,效果如下:
pidancode.com 欢迎您 请不要在本站输入敏感信息 操作失败,请稍后再试
相关文章