Django消息框架

当用户与平台进行交互时,用户可能希望告知他们操作的结果。Django有一个内置消息框架,允许你向用户显示一次性通知。
messages框架位于django.contrib.messages中,当你使用python manage.py startproject创建新项目时,它被包含在settings.py文件的默认INSTALLED_APPS列表中。

在项目的setting.py文件在中间件设置中包含一个名为django.contrib.messages.middleware.MessageMiddleware的中间件。

消息框架提供了一种向用户添加消息的简单方法。默认情况下,消息存储在cookie中(退回到会话存储),并在用户执行的下一个请求中显示它们。可以通过导入messages模块并使用简单的快捷方式添加新消息来在视图中使用消息框架,如下所示:
from django.contrib import messages
messages.error(request, 'Something went wrong')

通过使用add_message()方法或以下任何一种快捷方法创建新消息:

  • success():操作成功后显示的成功消息
  • info():提示消息
  • warning():某些操作尚未失败,但可能即将失败
  • error():操作未成功,或某些操作失败
  • debug():将在生产环境中删除或忽略的调试消息

因为消息框架应用于项目,因此应该在基础模版为用户显示消息。
编辑base.html模版

{% if messages %}
	 <ul class="messages">
		 {% for message in messages %}
			 <li class="{
  { message.tags }}">
			 {
  { message|safe }}
			 <a href="#" class="close">x</a>
			 </li>
		 {% endfor %}
	 </ul>
{% endif %}

messages框架包括上下文处理器django.contrib.messages.context_processors。在项目的TEMPLATES设置的context_processors列表中找到它。
将消息变量添加到请求上下文的消息。在模板中使用此变量向用户显示所有现有消息。

这里重构account应用,关于这个应用的更多内容,请查看

Django用户注册和用户配置扩展-CSDN博客


修改编辑视图以使用消息框架。
编辑account应用程序的views.py文件,导入消息

from django.contrib import messages

@login_required
def edit(request):
	 if request.method == 'POST':
	 # ...
		 if user_form.is_valid() and profile_form.is_valid():
			 user_form.save()
			 profile_form.save()
			 messages.success(request, 'Profile updated '\
			 'successfully')
		 else:
			 messages.error(request, 'Error updating your profile')
	 else:
		 user_form = UserEditForm(instance=request.user)
	 # ...

当用户成功更新其配置文件时,添加一条成功消息。如果任何表单包含无效数据,将添加一条错误消息。

关于Django消息框架更多内容,可以查阅
消息框架 | Django 文档 | Django (djangoproject.com)

相关推荐

  1. Django消息框架

    2024-01-17 08:50:02       36 阅读
  2. Django REST框架

    2024-01-17 08:50:02       32 阅读
  3. Django框架学习入门

    2024-01-17 08:50:02       25 阅读
  4. 【python】 Django Web框架

    2024-01-17 08:50:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-17 08:50:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-17 08:50:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-17 08:50:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-17 08:50:02       18 阅读

热门阅读

  1. Wargames与bash知识19

    2024-01-17 08:50:02       27 阅读
  2. 【Python 千题 —— 基础篇】猜数字小游戏

    2024-01-17 08:50:02       29 阅读
  3. js arguments对象的由来和用法

    2024-01-17 08:50:02       26 阅读
  4. vue的sync语法糖的使用

    2024-01-17 08:50:02       28 阅读
  5. 正则表达式2 常见模式

    2024-01-17 08:50:02       38 阅读
  6. 正则表达式

    2024-01-17 08:50:02       30 阅读
  7. UML2.0 14种图简单介绍

    2024-01-17 08:50:02       27 阅读
  8. Js高级语法

    2024-01-17 08:50:02       24 阅读
  9. 面试题总结-MQ总结

    2024-01-17 08:50:02       32 阅读