Django框架的简单新闻通讯应用。
项目描述
Informant是一个简单而灵活的应用,用于常见的新闻通讯发送功能,许多网站需要提供此类功能。它只提供一个常见的新闻通讯,具有选择加入/退出和邮件发送(HTML/文本替代)的管理命令。
安装
标准的Django方式
pip install django-informant
将其添加到您的INSTALLED_APPS
INSTALLED_APPS = ( .. .., 'informant', ... )
在您的settings.py中设置新闻通讯的电子邮件地址
NEWSLETTER_EMAIL = 'your@example.com
用法
模板
Informant提供了一些默认模板以供开始,但通常最好创建自己的定制模板。这些模板是
informant/management/subscribe_ok.html - 当订阅成功时的模板
informant/management/subscribe_error.html - 当出现错误时的模板
informant/management/unsubscribed.html - 当用户取消订阅时的模板
informant/mail/newsletter.html - 包含电子邮件结构的基模板
informant/mail/base.txt - 指向新闻通讯网络版本的文本替代
Informant使用新闻通讯文本作为Django模板。因此,在informant/mail/newsletter.html中创建基本块然后从它扩展到新闻通讯管理和覆盖特定的块,如您在真实模板中所做的那样非常有用。例如。
在informant/mail/newsletter.html:
{% load i18n %} <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{% trans "lang" %}" lang="{% trans "lang" %}"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>{% block head %}{% endblock %}</title> </head> <body> {% block content %}{% endblock %} </body> </html>
在新闻通讯对象的内容字段中:
{% extends "informant/mail/newsletter.html" %} {% block title %}My title{% endblock %} {% block content %}My content{% endblock %}
Ajax订阅
如果您不想有单独的带有订阅表单的页面,Informant有一个jQuery插件可以处理。
该函数在 <form> 元素上调用。它期望表单已正确设置 action 属性并指向正确的 URL。请参阅示例
<form id="newsletterSubscribeForm" action="{% url "informant_subscribe" %}" method="post"> <div> <label for="email">Enter your e-mail:</label> <div id="newsletterSubscribeResult"></div> {% csrf_token %} <input type="email" name="email" /> <input type="hidden" name="surname" value="" /> </div> <div> <input type="submit" value="Subscribe" class="button" /> </div> </form> <script type="text/javascript"> // JavaScript handler var subscribeForm = $('#newsletterSubscribeForm'); subscribeForm.informantSubscribeForm({ renderResults: true, resultContainer: $('#newsletterSubscribeResult') }); subscribeForm.bind('informantSubscribeOk', function () { $(this).find('input').hide(); }); </script>
JavaScript 插件默认不渲染任何结果。如果您希望它这样做,请提供如上所示的配置。插件将在成功或无效订阅的情况下触发 informantSubscribeOk 和 informantSubscribeError 事件。您可以使用 jQuery 的 .bind() 方法绑定到这些事件。
发送
Informant 提供了 send_newsletter 命令,该命令将使用 Django 设置中的电子邮件后端发送时事通讯。
项目详情
django-informant-1.1.0.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 68a4f23d233b2c8d51c3218e8fed64451622228cac12d33a2f99d6dddc3a5d5c |
|
MD5 | 4540f32e76d1aef6695b732ca4c46561 |
|
BLAKE2b-256 | 14dc1c9dcdbdb99bbb4319be526c17932277e3c1d8edfe95b01f587b09be85c8 |