2个月前 (07-23)  Django Python  抢沙发  38 
文章评分 0 次,平均分 0.0
导语:其消息框架允许你临时将消息存储在请求中,并在接下来的请求(通常就是下一个请求)中提取它们并显示。每个消息都带有一个特定level 标签,表示其优先级(例如info、warning 或error)
p1780337282

一.简介

在网页应用中,你经常需要在处理完表单或其它类型的用户输入后,显示一个通知消息(也叫做“flash message”)给用户

对于这个功能,Django 提供基于Cookie 和会话的消息,无论是匿名用户还是认证的用户。

其消息框架允许你临时将消息存储在请求中,并在接下来的请求(通常就是下一个请求)中提取它们并显示。每个消息都带有一个特定level 标签,表示其优先级(例如info、warning 或error)

二.启用消息框架

消息框架的实现通过一个中间件 类和对应的context processor。

django-admin startproject 创建的默认settings.py 已经包含启用消息框架功能需要的所有的设置:

INSTALLED_APPS 中的’django.contrib.messages’。

MIDDLEWARE_CLASSES 中的’django.contrib.sessions.middleware.SessionMiddleware’ 和’django.contrib.messages.middleware.MessageMiddleware’。

默认的后端存储 依赖sessions。所以MIDDLEWARE_CLASSES 中必须启用SessionMiddleware 并出现在MessageMiddleware 之前。

TEMPLATES 设置中定义的DjangoTemplates 的’context_processors’ 选项包含’django.contrib.messages.context_processors.messages’。

三:配置消息存储和级别,这个不赘述。

默认按照上述配置不会出现问题。但是默认情况下,context_processors这个项在settings里面是没有的。没有的时候其实是可以正常使用的。但是由于之前我们为了在解决另外一个问题的时候为了使用request.sessions的时候增加了context_processors,但是又没包含django.contrib.messages.context_processors.messages。所以导致无法渲染。直接天假进去就可以解决了。




关于

发表评论

表情 格式

暂无评论

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享