Django.contrib.messages 的消息存储后端

2023-04-11 00:00:00 django 消息 后端

Django.contrib.messages 是 Django 框架自带的消息存储后端,用于存储用户会话期间的信息,例如错误提示、成功提示等。

它提供了两种消息存储方式:

  1. CookieStorage:将消息存储在用户浏览器的 cookie 中。适用于短期消息存储,但容量有限。

  2. 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!”这条消息。

相关文章