在做web系统的时候,我们需要针对一些操作的结果要进行提示信息给用户,如“××××保存成功!”,“××××出现错误!”。
在基于mvc的模型的框架下,我们可以采用flash message的方式。
以前在用web2py框架的时候,主要写:
response.flash = '订购%s成功'% foods[0].name
就会自动在上方提示response.flash的信息。
一.Django admin的提示信息
但是django没有flash,我们在使用django admin的时候,我们也看到了保存了一个对象成功后,会在列表的上方出现提示信息,这是如何做到的呢?
查看其源码,我么可以看到:
request.user.message_set.create(message="Your playlist was added successfully.")
在template中增加如下代码:
{% if messages %}
<ul class="messagelist">
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
在设置一下messagelist央视,就达到了和django admin一样的提示信息效果。
但是这种提示信息,需要依赖request.user,如果没有进行登录,则无法实现。
具体查看django document:
http://docs.djangoproject.com/en/dev/topics/auth/#messages
二.Flash Message Template Tag
接下来我们使用Flash Message Template Tag来实现。
具体实现方式查看Flash Message Template Tag的文档。
http://www.djangosnippets.org/snippets/319/
注意:django最新版本中需要修改其中的一段代码:
原文中的57-58的代码修改如下:
if ret is not None:
context.update(ret)
return self.nodelist.render(context)
你可以将
>>>request.session['flash_msg'] = 'Your changes have been save'
>>>request.session['flash_params'] = {'type': 'success'}
封装的使用更友好一点如:
#coding=utf-8
def add_msg(request,msgtype,msg):
request.session["flash_msg"] = msg
request.session["flash_params"] = {'type': msgtype}
def add_success_msg(request,msg):
add_msg(request,'success',msg)
def add_error_msg(request,msg):
add_msg(request,'error',msg)
这样你就可以:
flash.add_success_msg(request,'保存成功!')
flash.add_error_msg(request,e.msg)
就可以实现了Flash Message.
分享到:
相关推荐
python库。 资源全名:django_flash-1.5.2-py2.5.egg
Django-Flash Django-Flash 是一个简单的 Django 扩展,它为类似的flash消息提供支持。 flash是一种类似于 Python 字典的临时存储机制,因此您可以存储与键关联的值,然后再检索它们。 它有一个特殊的属性:默认...
django4最新中文文档+适合python初学或者初次接触django4的开发者 从事Python编程工作的人员,一定听说过这三个框架:Django、Flask、Tornado,它们就像神一样的存在 Django是最有代表性的一种。许多成功的网站和APP...
最强最齐全的Django开发文档,对于很多想从事学习Django Web开发的很多人而言,Django一直没有官方的中文文档是个弊端。而且Django更新较快,国内很多翻译版本都太滞后了。现在小编我告诉大家一个好消息!! Django...
Django 中文文档 Django 中文文档 Django 中文文档 Django 中文文档
为热爱学习的小伙伴提供django4.0官方文档,
django中文文档的介绍,django 官方文档说明 django 官方文档说明 django 官方文档说明
python库,解压后可用。 资源全名:django_flash-1.6.1-py2.4.egg
Django中文手册Django中文手册Django中文手册Django中文手册Django中文手册
Django_中文教程.pdf Django_中文教程.pdf Django_中文教程.pdf
Django REST framework 中文文档,Django REST framework 中文翻译文档,Django REST framework 中文翻译
你所需要知道的关于 Django 的一切。
2022年2月18日,Django 版本已经到了4.0.3 ,这是最新的中文官方文档,网页版的,可以直接本地查看的。网上貌似最新的是 Django 2.1版本的官方文档,做成电子书,Django每个版本差异较大,最好看最新的,相信有关...
NULL 博文链接:https://lampeter123.iteye.com/blog/407105
Django中文文档pdfDjango中文文档pdfDjango中文文档pdfDjango中文文档pdf
在网页应用中,我们经常需要在处理完表单或其它类型的用户输入后,显示一个通知信息给用户。 对于这个需求,Django提供了基于Cookie或者会话的消息框架messages,无论是匿名用户还是认证的用户。这个消息框架允许你...
Django 文档 你所需要知道的关于 Django 的一切。 这份文档是如何组织的¶ Django 有丰富的文档。一份高度概述的文档会告诉你在哪里找到特定的东西: 教程 通过手把手地方式教你一步步的创建一个 Web 应用。如果...
django-crudbuilder, 在 Django 中,通用CRUD实现 crudbuilder在 Django 中使用 Django tables2列出对象的通用CRUD实现。文档https://django-crudbuilder.readthedocs.org/en/la
django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django电子商务网站源码 django...
django 中文文档 1.8 20150925