具有可插入后端的用户通知库。兼容流行的框架,如django,flask,芹菜。
yell的Python项目详细描述
可插入的python应用程序通知。
yell不是一个通知存储或传递后端,而是一组api,可以方便地添加您自己的传递机制。
完整的文档here可用。
使用通知装饰符
from yell import notify from yell.decorators import notification @notification(name = 'buffalo') def buffalo_printer(message): print message @notification(name = 'buffalo') def buffalo_saver(message): save(message) notify("buffalo", _("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo"))
使用通知类
from yell import Notification, notify class Buffalo(Notification): name = "buffalo" message = _("Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo") def notify(self, *args, **kwargs): print self.message class BuffaloEmail(Buffalo): def notify(self, *args, **kwargs): send_mail("Buffalo", self.message, 'buffalo@example.com', [kwargs.get('user').email]) class BuffaloDatabase(Buffalo): def notify(self, *args, **kwargs): BuffaloModel.objects.create(user = kwargs.get('user')) # The default behaviour is to use every notification backend with the same # name notify("buffalo", user = User.objects.get(id=1)) # Only send emails notify("buffalo", user = User.objects.get(id=1), backends = [BuffaloEmail])
更改日志
v0.3
- 向后不兼容 mimetypespackage被证明是跨系统不一致的。 TemplatedEmailBackend现在使用显式声明的文件 分机。
v0.2
- 使api更易于使用(向后不兼容):
- yell.Yell变成了yell.Notification
- yell.yell变成了yell.notify
- yell.decorators.yelling变成了yell.decorators.notification