Django中提示消息messages的设置

博客介绍了messages模块的使用流程,包括引入messages模块,将其写入view中,最后把messages渲染到页面。涉及Python和前端JavaScript相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 引入messages模块

1 from django.contrib import messages

2. 把messages写入view中

 1 @csrf_exempt
 2 def search(request):
 3     if request.method == 'GET':
 4         bookname = request.GET.get('bookname')
 5         bookinfo = Book.objects.filter(bookname=bookname)
 6         is_staff = request.user.is_staff
 7         username = request.user.username
 8         gonggao = Gonggao.objects.all().order_by("-c_time")
 9         liuyanban_all = liuyan.objects.all().order_by("-c_time")
10         c2 = JieInfo.objects.filter(u_name=username, book_name=bookname)
11         c3 = JieInfo.objects.filter(u_name=username).count()
12         if username == '':
13             messages.error(request, '亲,请您先登录,才能使用该功能。')
14             return redirect('/')
15         else:
16             if bookname == '':
17                 messages.error(request, '亲,搜索内容不能为空哦。')
18                 return redirect('/')
19             elif c2.exists():
20                 messages.error(request, '对不起,您不能再次借阅该图书了。')
21                 return redirect('/')
22             elif c3 == 5:
23                 messages.error(request, '对不起,您将超出图书馆借阅图书数量限制。')
24                 return redirect('/')
25             else:
26                 if bookinfo.exists():
27                     return render(request, "systeam/searched.html",
28                                   {'bookinfo': bookinfo, 'username': username, 'is_staff': is_staff})
29                 else:
30                     messages.error(request, '亲,没有这本书呢。')
31                     return redirect('/')
32     else:
33         return render(request, "systeam/searched.html", {'username': username})

3. 把messages渲染到页面中

 1 {% if messages %}
 2 
 3     <ul class="messages">
 4 
 5     {% for message in messages %}
 6 
 7 
 8         <li{%if message.tags %} class="{{ message.tags }}"{% endif %}>
 9             <div class="m_title">
10                 {{ message.tags }}
11                 <a href="" id="a_tuichu">
12                     <i class="iconfont icon-fork"></i>
13                 </a>
14             </div>
15             <div id="m_box">
16                 {{ message }}
17             </div>
18             <a href="" id="a_sure">
19                 <button id="button_sure">
20                 确认
21                 </button>
22             </a>
23         </li>
24 
25     {% endfor %}
26 
27     </ul>
28 
29     {% endif %}

 

转载于:https://www.cnblogs.com/zihao1037/p/11037801.html

### Django 中的消息框架使用 #### 配置消息存储方式 为了配置消息的存储位置,可以在项目的 `settings.py` 文件中设置 MESSAGE_STORAGE 变量。例如,可以将消息保存到 Cookie 中: ```python MESSAGE_STORAGE = 'django.contrib.messages.storage.cookie.CookieStorage' ``` 这使得每次请求都能携带上一次未读取消息的信息[^1]。 #### 导入并发送消息 要在视图函数中向用户发送消息,需先导入 messages 模块,并调用相应的方法传递信息给当前请求对象 request。对于成功的操作反馈,通常会采用 success 方法;而对于错误提示,则可能更倾向于 error 或 warning 方法: ```python from django.contrib import messages def some_view(request): # 假设这里执行了一些逻辑... if everything_is_fine: messages.success(request, "操作成功") else: messages.error(request, "发生了一个错误") return redirect('some_url') ``` 上述代码展示了如何根据同情况分别显示成功或失败的通知[^2]。 #### 显示带有样式的消息 为了让前端能够区分同类型的消息(如 info、warning、error),可在模板文件里遍历所有可用的消息列表,并依据每条记录的实际等级应用特定 CSS 类名。下面是一个简单的例子说明怎样处理这些来自服务器端传来的通知: ```html {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}> {{ message }} </li> {% endfor %} </ul> {% endif %} ``` 这段 HTML 片段会检查是否有任何待展示的消息存在,如果有则循环渲染它们的同时附加相应的标签作为样式类名称,从而允许开发者自定义视觉效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值