Skip to main content

DSN 或 django-signal-notifier 是一个 Django 包,用于根据 Django 的信号触发发送消息或通知

项目描述

文档 PyPI 项目

DSNdjango-signal-notifier是一个 Django 包,用于根据 Django 的信号触发发送消息或通知。您可以为每个信号分配一些后端(例如,现场通知应用程序)。

django-signal-notifier与其他 Django 通知包的主要区别在于DSN不仅仅是一个简单的消息传递系统。它可以充当 Django 和每个信使客户端(各种客户端,如电子邮件、电报、短信和推特)之间的中间件。

它使用事件方法,它基于Django signal。如果信号触发,则调用信使为指定用户发送消息。为了理解它是如何工作的,我们首先解释一些主要概念。

文档、安装和入门说明在文档中

概念(摘要)

DSN的架构:

DSN 架构

简而言之,我们可以说DSN是为发送消息而开发的:

  • 何时何地?:触发​​触发时(调用相关信号的发送函数,并且触发的规格匹配)。

  • 发送什么?:为 message_template 和其他参数(如 signal_kwargs)创建的消息。

  • 寄给谁?: 将消息发送给订阅中注册的接收者或信使中可以指定的动态用户。

设置

要求

  • 蟒蛇 2.7、3.4、3.5、3.6、3.7

  • Django 1.7、1.8、1.9、1.10、1.11、2.0、2.1、2.2、3.0

安装

1 、通过pip安装django-signal-notifier :

$ pip install django-signal-notifier

或使用源

$ git clone https://github.com/hadi2f244/django-signal-notifier
$ cd django-signal-notifier
$ python setup.py sdist
$ pip install dist/django-signal-notifier*
  1. 在 INSTALLED_APPS 设置的末尾添加“django_signal_notifier”,如下所示

INSTALLED_APPS = [
    'django.contrib.auth',
    'django.contrib.contenttypes',
    ...
    'django_signal_notifier',
]
  1. 迁移

  2. django-signal-notifier默认由管理面板配置(可以通过代码配置,强悍)

  3. 使用python manage.py migrate进行模式迁移。

用法

  1. 运行开发服务器并访问http://127.0.0.1:8000/admin/ 创建触发器(信号)、后端(信使和消息模板)和订阅(您需要启用管理应用程序)。

  2. 你可以像这样测试它:

    5.1。创建触发器(verb=pre_save 和 action_object=TestModel1)

    5.2. 创建后端(messenger=SimplePrintMessengerTemplateBased 和 message_template=SimplePrintMessageTemplate)

    5.3. 创建连接触发器和后端的订阅。将管理员添加到接收者(用户)列表。

    5.4. 在 manage.py shell 中运行此命令:

    from django_signal_notifier.models import *
    TestModel1_another_instance = TestModel1.objects.create(name="new_test_model2", extra_field="extra")

    现在,您应该在创建 TestModel1 时看到一条消息。通过创建新的 TestModel1,Django 调用 pre_save 信号的发送方法。然后这个信号调用关联的触发器处理程序。在 Trigger 处理程序中,调用关联的后端。带有一些详细信息的 message_template 被发送到后端。在我们的例子中,打印了一条简单的消息。您可以提供您的信使和 message_templates。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

django-signal-notifier-0.2.1.tar.gz (46.1 kB 查看哈希)

已上传 source

内置分布

django_signal_notifier-0.2.1-py3-none-any.whl (42.5 kB 查看哈希

已上传 py3