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设置中的电子邮件后端。

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

推荐PyPI第三方库


热门话题
java JAXB封送字符串,具有xml值,且不转义该值   java ModelMapper转换器不工作   java像HH000412或HCANN000001这样的前缀是什么意思?   验证日期输入修复java。lang.numberformatexception错误   当表具有外键时,java Telosys代码生成失败   如何使所有派生类一起只能实例化一个实例的单例抽象基类?(爪哇)   java如何在非静态服务类中使用广播接收器   java nutch爬虫相对URL问题   使用Jboss DMR下载/保存java附件   Rest模板:无法提取响应:当我们得到xml响应时,没有找到适合响应类型的HttpMessageConverter,没有绑定到JAVA对象   java如何编写可扩展窗格/面板/卡的代码   java是在ITreeViewerListener的treeExpanded()之前调用ContentProvider的getChildren()吗?   java将JComponent添加到小程序窗格   java混淆:使用简单逻辑的Flames程序