Django contrib.messages on steroids

django-stored-messages的Python项目详细描述


https://badge.fury.io/py/django-stored-messages.pnghttps://travis-ci.org/evonove/django-stored-messages.png?branch=masterhttps://coveralls.io/repos/evonove/django-stored-messages/badge.png

django contrib.类固醇信息

该应用程序与django的messages framework顺利集成 (django.contrib.messages),但用户可以决定哪些消息必须存储在数据库中 后端并在会话期间保持可用。

功能

  • django.contrib.messages
  • 无缝集成 所有的特性都在一个混合中,你可以附加到你现有的存储中。
  • 存储的消息存档在数据库或redis实例中
  • 用户可以配置必须持久化的消息级别
  • 用于检索消息并将其标记为已读的rest api(需要djangorestframework
  • 向API发送信号以执行响应消息活动的操作

兼容性表

  • Python2.7、3.4、3.5
  • Django 1.8,1.9
  • django rest framework>;=3.3(仅当您想使用rest端点时)

您使用django或django rest框架的早期版本吗?甚至可以使用old version of stored_messages 如果不再受支持。无论如何,计划迁移到新版本。

文档

完整的文档位于http://django-stored-messages.rtfd.org。它包括migration instructions如果你 从早期版本的stored_messages迁移。

快速启动

按照指示启动django.contrib.messages, 然后安装应用程序:

$ pip install django-stored-messages

将其添加到已安装的应用程序:

INSTALLED_APPS=(# ...'stored_messages',)

在设置中,告诉django哪个是消息存储:

MESSAGE_STORAGE='stored_messages.storage.PersistentStorage'

最后一步,不要忘记运行django迁移:

$ python manage.py migrate

然后通过django.contrib.Messages API在项目中使用它。应用程序提供了方便 一些默认情况下保持的消息级别:

importstored_messagesfromdjango.contribimportmessages# standard messagemessages.add_message(request,messages.INFO,'Hello world.')# this will be persisted and marked as 'unread'messages.add_message(request,stored_messages.STORED_INFO,'Hello world, to the database!')

存储的_消息也会公开相同的api,因此可以这样做:

importstored_messagesstored_messages.add_message(request,stored_messages.INFO,'Hello!')

如果要使用标准消息级别,但要持久化消息,只需添加以下内容 设置:

fromdjango.contribimportmessagesSTORED_MESSAGES={# persist standard infos and standard errors'STORE_LEVELS':(messages.INFO,messages.ERROR,),}

迭代消息将自动将其标记为已读(但仍保持):

storage=messages.get_messages(request)forunread_messageinstorage:# unread_message could be a stored message or a "standard" Django messagedo_something_with(unread_message)

…除非您将存储器标记为未使用:

storage.used=False

您可以随时将存储的邮件标记为已读:

stored_messages.mark_read(request.user,message)

要将邮件存储在redis而不是数据库中吗?给您:

STORED_MESSAGES={'STORAGE_BACKEND':'stored_messages.backends.RedisBackend','REDIS_URL':'redis://localhost:6379/0',}

历史记录

1.0.1(2014-04-17)

  • 修正了inbox get()上的主要错误
  • 修复了redis后端消息的收件箱序列化程序
  • 增强的测试套件
  • 添加404个描述并返回

1.0.0(2014-04-01)

  • 支持redis的新后端架构
  • 支持广播消息

0.2.1(2013-12-23)

  • 添加了存储的消息数模板标记和测试

0.2.0(2013-10-22)

  • 添加了存储的信息存档模板标记
  • 扩展rest api

0.1.2(2013-10-13)

  • 为存储的消息添加了特定的模板标记

0.1.1(2013-10-10)

  • fixed setup.py

0.1.0(2013-10-08)

  • pypi上的第一个版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Do JSR286 Portlet需要一个web。xml文件在他们的WAR文件中?   Java8流API:获取第一个找到的集合元素   java中遍历XML节点的问题   智能卡Java卡安装小程序   java链表自动添加空值   java如何在单元测试中读取配置文件?   EditText AlertDialog中的java拼写检查不工作   java在Android的Edittext上键入内容时,如何使用listview上的过滤器   java从类中获取带注释的变量   java下一个按字典顺序排列的字符串   java如何使用webview和javafx设置html节点值   java将结果集返回给另一个函数   java打印字符串C++等价   如何在java接口中定义Getter和Setter(属性)