Django.contrib.messages 的消息存储后端
Django.contrib.messages 是 Django 框架自带的消息存储后端,用于存储用户会话期间的信息,例如错误提示、成功提示等。
它提供了两种消息存储方式:
-
CookieStorage:将消息存储在用户浏览器的 cookie 中。适用于短期消息存储,但容量有限。
-
SessionStorage:将消息存储在用户会话(session)中。适用于长期消息存储,但需要占用服务器内存。
以下是用 django.contrib.messages 存储消息的示例代码:
from django.contrib import messages from django.shortcuts import render, redirect def my_view(request): messages.success(request, '操作成功!') return redirect('/my_page/') def my_page(request): return render(request, 'my_page.html')
在上面的代码中,我们在 my_view 函数中使用 messages.success 存储一条“操作成功”的消息,在 my_page 页面中可以通过以下代码显示这条消息:
{% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %}
这段代码会将存储在 session 或 cookie 中的消息渲染成 HTML 格式,并在页面中显示。如果有多条消息,则会按照存储的顺序逐一显示。
如果要在示例代码中使用字符串作为范例,可以修改 my_view 函数中的代码:
def my_view(request): messages.success(request, '欢迎来到 pidancode.com !') return redirect('/my_page/')
这样,在 my_page 页面中就会显示“欢迎来到 pidancode.com!”这条消息。
相关文章