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更新,请测试代码。
快速入门指南:
安装:
安装django-mailchimp-v1.3:
pip install django-mailchimp-v1.3
在settings.py中添加一个MAILCHIMP_API_KEY,并将mailcimp api密钥作为值(显然)
将mailchimp添加到项目的已安装应用程序列表中
四。要开始使用API,应该从使用utils.get_connection()开始。这将使用API密钥 刚刚在settings.py中定义
向用户订阅列表:
要获取列表:
list = mailchimp.utils.get_connection().get_list_by_id(<list key id>)
现在将成员添加到邮件列表:
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