Django框架的简单新闻稿应用程序。
django-informant的Python项目详细描述
线人是简单而灵活的应用程序,用于普通的新闻发送功能。 哪些网站需要提供。它只提供一份通用的时事通讯 带有opt-in/opt-out和邮件发送功能管理命令(html/text可选)。
安装
标准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-应该指向新闻稿网络版的文本替代方案
告密者使用新闻稿文本作为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订阅
如果你不想用订阅表格分开一页,告密者有一个 jquery插件,它将负责。
它在<form>元素上调用。它希望表单正确地 设置指向正确url的action属性。参见示例:
<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的^{tt12}绑定到它们$ 方法。
发送
线人提供send_newsletter命令来发送新闻稿 使用django设置中的电子邮件后端。