`
maplye
  • 浏览: 114655 次
  • 来自: ...
社区版块
存档分类
最新评论

Django中的flash message

阅读更多

在做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.

分享到:
评论

相关推荐

    Django 与 Flash 的结合!-- 带给你更为强大的Web体验

    在实际开发中,这样的测试可以帮助开发者验证Flash内容是否正确加载和运行,同时也可以用来调试Flash与Django之间的数据交互问题。 ### 总结 Django与Flash的结合使得Web开发可以充分利用两者的优点,创造出既有...

    Python库 | django_flash-1.6.1-py2.4.egg

    `django_flash`库的版本1.6.1-py2.4.egg是一个针对Python 2.4编译的压缩包,它使得在Django项目中优雅地管理“flash”消息变得轻而易举。在Web开发中,"flash"消息通常指的是那些在用户交互之间短暂显示的信息,如...

    Python库 | django_flash-1.5.2-py2.5.egg

    python库。 资源全名:django_flash-1.5.2-py2.5.egg

    轻量级flash服务器开发框架:Django

    【标题】"轻量级Flash服务器开发框架:Django"所指的知识点主要围绕着Django框架和其在Flash服务器开发中的应用。Django是一个基于Python的开源Web框架,它遵循模型-视图-控制器(MVC)架构模式,旨在简化高效、可...

    django4中文文档

    django4最新中文文档+适合python初学或者初次接触django4的开发者 从事Python编程工作的人员,一定听说过这三个框架:Django、Flask、Tornado,它们就像神一样的存在 Django是最有代表性的一种。许多成功的网站和APP...

    django中文官方文档

    django中文文档的介绍,django 官方文档说明 django 官方文档说明 django 官方文档说明

    django4.0官方中文文档

    本篇将深入探讨Django 4.0官方中文文档中的关键知识点。 1. **快速入门**:官方文档首先会介绍如何快速搭建Django环境,包括安装步骤、创建项目和应用、数据库配置等基础操作。新手开发者可以通过这些章节迅速上手...

    django4.1中文手册

    Django 文档¶ 你所需要知道的关于 Django 的一切。 快速入门¶ 你是刚学 Django 或是初学编程? 这就是你开始学习的地方! 从零开始: 概要 | 安装 入门教程: 第 1 节:请求和响应 | 第 2 节:模型和管理站点 | ...

    Django 中文文档

    13. Django中的安全问题:详细介绍了Django中的安全特性,包括防止常见的网络攻击手段,如点击劫持、跨站请求伪造(CSRF)等。 14. 异常处理:文档提供了一些常用的异常处理方法和策略。 15. 应用程序概览:解释了...

    django-flash:Django-Flash 是一个简单的 Django 扩展,它为类似 Rails 的 flash 消息提供支持

    Django-Flash Django-Flash 是一个简单的 Django 扩展,它为类似的flash消息提供支持。 flash是一种类似于 Python 字典的临时存储机制,因此您可以存储与键关联的值,然后再检索它们。 它有一个特殊的属性:默认...

    django中文开发手册

    - **安装Django**:详细介绍如何在本地环境中安装Django,包括Python环境的配置以及Django的安装步骤。 - **创建第一个项目**:指导如何创建一个简单的Django项目,并解释项目结构及各个部分的作用。 - **运行服务器...

    django-3.2中文文档.zip

    这部分文档可能涵盖了 Django 模板语言的基本语法、内置标签和过滤器,以及如何在模板中操作数据。 6. **模块索引(py-modindex.html)** - 这是 Django 源代码的模块索引,对深入理解 Django 内部工作原理非常有...

    最强django中文手册

    最强最齐全的Django开发文档,对于很多想从事学习Django Web开发的很多人而言,Django一直没有官方的中文文档是个弊端。而且Django更新较快,国内很多翻译版本都太滞后了。现在小编我告诉大家一个好消息!!  Django...

    Django中文手册

    Django中文手册Django中文手册Django中文手册Django中文手册Django中文手册

    Django 4.0.3 中文官方文档 网页版

    2022年2月18日,Django 版本已经到了4.0.3 ,这是最新的中文官方文档,网页版的,可以直接本地查看的。网上貌似最新的是 Django 2.1版本的官方文档,做成电子书,Django每个版本差异较大,最好看最新的,相信有关...

    Django 2.2 官方文档中文版.pdf

    首先,文档中提到了如何快速安装Django,这对于初学者来说是最基础也是最关键的一步。Django可以通过Python包管理器pip进行安装,并且官方提供了详细的安装指南,包括如何设置数据库和其他依赖项。文档还引导读者...

    Django 中文手册

    Django的中间件(Middleware)是一系列钩子,可以插入到请求和响应处理流程中,实现全局的功能扩展,如日志记录、性能监控等。此外,Django的Admin界面是一个强大的后台管理系统,通过简单的配置,即可自动生成用于...

    Django中文教程

    Django旨在简化Web开发过程,它处理了Web开发中很多常见的问题,为开发者提供了快捷方式,使得开发过程更加高效。 #### Django的核心功能 - **重用性**:Django提供了一套丰富的内置组件,可用于处理如用户认证、...

    Django By Example中文_目录_精排_2017_文字版

    在Django项目中,URLs通常在应用的urls.py文件中定义,并将URL模式映射到相应的视图函数。 7. 列表视图的分页:在处理大量数据时,分页功能是必不可少的。Django提供了分页工具,允许开发者将列表视图分割成多个...

    django 1.8.2官方中文文档

    在 Django 中,模型是数据的蓝图,对应数据库中的表。模型类定义了字段(如 CharField、IntegerField)和行为。Django 自动提供了 ORM(对象关系映射),使得通过 Python 代码操作数据库变得简单。在 Django 1.8.2 ...

Global site tag (gtag.js) - Google Analytics