Django的MailChimp包装,使用MailChimp API 1.3

django-mailchimp-v1.3的Python项目详细描述


这是Django处理MailChimp邮件列表系统的集成应用程序。

警告

这个包以前被简单地称为django-mailchimp。但是自从 MailChimp API在v1.2和v1.3之间以不向后兼容的方式更改, 我们将其重命名为django-mailchimp-v1.3

这个版本的内容可能会以有趣的方式中断,所以请确保 如果要从django-mailchimp更新,请测试代码。

快速入门指南:

安装:

  1. 安装django-mailchimp-v1.3

    pip install django-mailchimp-v1.3
    
  2. 在settings.py中添加一个MAILCHIMP_API_KEY,并将mailcimp api密钥作为值(显然)

  3. mailchimp添加到项目的已安装应用程序列表中

四。要开始使用API,应该从使用utils.get_connection()开始。这将使用API密钥 刚刚在settings.py中定义

向用户订阅列表:

  1. 要获取列表:

    list = mailchimp.utils.get_connection().get_list_by_id(<list key id>)
    
  2. 现在将成员添加到邮件列表:

    list.subscribe('example@example.com', {'EMAIL':'example@example.com'})
    

那些讨厌的合并变量:

一般信息:

MailChimp是一个相当普通的服务。因此,它需要存储订阅列表的人的信息, 这些信息都是针对这张单子的!

为了帮助您构建动态表单(可能),mailchimp添加了merge变量。基本上,他们是 显示为每一条信息定义的信息和元信息的措辞。 下面是默认的合并变量集(一个带有默认选项的全新列表):

[
    {
    'field_type': 'email',
    'name': 'Email Address',
    'show': True,
    'default': None,
    'req': True,
    'public': True,
    'tag': 'EMAIL',
    'helptext': None,
    'order': '1',
    'size': '25'
    },{
    'field_type': 'text',
    'name': 'First Name',
    'show': True,
    'default': '',
    'req': False,
    'public': True,
    'tag': 'FNAME',
    'helptext': '',
    'order': '2',
    'size': '25'
    },{
    'field_type': 'text',
    'name': 'Last Name',
    'show': True,
    'default': '',
    'req': False,
    'public': True,
    'tag': 'LNAME',
    'helptext': '',
    'order': '3',
    'size': '25'
    }
]

如您所见,它是一个由3个单词组成的列表,每个单词都包含几个字段,您应该使用这些字段来构建 用户界面(因为您正在使用此应用程序,这意味着您的django表单)。

获取它们:

您可以使用以下API调用重新创建此列表:

list = mailchimp.utils.get_connection().get_list_by_id(<The list's key ID>)
print list.merges

使用它们:

当你发邮件给mailchimp时,你需要通过merge-vars。例如,在使用默认值创建的新列表中 在MailChimp网站上设置,下面的调用将一个成员添加到一个列表中(上面的信息比我们的最小示例多一点):

list = mailchimp.utils.get_connection().get_list_by_id(<The list's key ID>)
list.subscribe('example@example.com', {'EMAIL': 'example@example.com', 'FNAME': 'Monthy', 'LNAME': 'Pythons'})

注意使用“tag”字段作为字段的键(他们为什么不称之为“key”或“id”是无法理解的)。

创建视图:

现在,我们将尝试向上移动堆栈,并创建必要的元素来创建一个可用的mailchimp接口

启动您喜爱的编辑器并打开views.py。放入以下代码片段:

from django.http import HttpResponseRedirect
from mailchimp import utils

MAILCHIMP_LIST_ID = 'spamspamspamspameggsspamspam' # DRY :)
REDIRECT_URL_NAME = '/mailing_list_success/'
def add_email_to_mailing_list(request):
    if request.POST['email']:
        email_address = request.POST['email']
        list = utils.get_connection().get_list_by_id(MAILCHIMP_LIST_ID)
        list.subscribe(email_address, {'EMAIL': email_address})
        return HttpResponseRedirect('/mailing_list_success/')
    else:
        return HttpResponseRedirect('/mailing_list_failure/')

当然,如果您觉得重定向用户不是正确的方法(处理表单可能是个好主意),请 可根据您的需要自由调整此简单示例:p

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

推荐PyPI第三方库


热门话题
mysql java语言非法参数异常?   java绘制控制流图   无法通过java eclipse中的ssh隧道远程连接到mysql数据库   直接在@SuppressWarnings之后出现java Eclipse错误(“未选中”)   java如何使用远程api google应用程序引擎api客户端?   工具栏中的java导航图标颜色未更改?   java返回带有映射子集的实体   java Spring重新加载属性Bean未更新   fileoutputstream正在获取java。木卫一。IOException:流关闭错误,但未显式关闭它   jsp标记显示java。时间使用jstl的LocalDateTime   java如何设置onFailure事件(Spring,Kafka)的超时?   将java元素添加到多个线程中的列表时,会跳过这些元素   JAVAutil。扫描程序Java读取空格后的整数值   java JMonkey过滤器着色器获取片段的世界位置   java从mongodb获取随机值   java如何使用Intent。标记\u活动\u清除\u顶部以清除活动堆栈?   多线程如何控制在多个端口上监听的java服务器应用程序   在具有复合键的相关实体之间插入数据时发生java Hibernate错误