Mailchimp wrapper for Django, using Mailchimp API 1.3
Project description
This is an integrated app for Django dealing with the Mailchimp mailing list system.
Quick start guide:
Installation:
Install django-mailchimp-v1.3:
pip install django-mailchimp-v1.3
Add a MAILCHIMP_API_KEY to your settings.py with your mailchimp API key as the value (obviously)
Add mailchimp to your project’s list of INSTALLED_APPS
4. To start using the API, you should start by using utils.get_connection(). This will use the API_KEY you just defined in settings.py
Subscribing a user to a list:
To get the list:
list = mailchimp.utils.get_connection().get_list_by_id(<list key id>)
Now add a member to the mailing list:
list.subscribe('example@example.com', {'EMAIL':'example@example.com'})
Those pesky merge vars:
General info:
Mailchimp is a quite generic service. As such, it needs to store information on people who subscribe to a list, and that information is specific to this very list!
So to help you build dynamic forms (presumabely), mailchimp added the merge_vars. They are, basically, a dictionnary showing infromation and meta-information defined for each piece of information. Here’s what the default set of merge vars look like (ona brand new list with default options):
[ { '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' } ]
As you can see, it’s a list of 3 dictionnaries, each containing several fields that you should use to build your user interface with (since you’re using this app, that means your Django form).
Obtaining them:
You can recreate this list using the following API call:
list = mailchimp.utils.get_connection().get_list_by_id(<The list's key ID>) print list.merges
Using them:
When you make a post to mailchimp, you need to pass merge_vars. For example, in a new list created with the default settings on the mailchimp website, the following call adds a member to a list (with a little more info than our bare minimum example up there):
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'})
Note the use of the ‘tag’ field as the key for fields (why they didn’t call it ‘key’ or ‘id’ is beyond comprehension).
Create a view:
We’ll now try to move up the stack and create the necessary elements to make a useable mailchimp interface
Fire up your favorite editor and open your views.py. Put in the following snippet of code:
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/')
Of course, if you feel redirecting the user is not the right approach (handling a form might be a good idea), feel free to adapt this simple example to your needs :p
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-mailchimp-v1.3-1.4.0.tar.gz
.
File metadata
- Download URL: django-mailchimp-v1.3-1.4.0.tar.gz
- Upload date:
- Size: 31.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1e1fdfa35ddfbccf60607ec770194a71dcb122c66c79cff351bcba3016a60a08 |
|
MD5 | 3705a5d9c3d5cfb95243c94ddb8612a5 |
|
BLAKE2b-256 | 5831e5e3e4dfb38b28d03ed7176b1e676f52e8a7ccbd009cc3f476b1505591f9 |
File details
Details for the file django_mailchimp_v1.3-1.4.0-py2-none-any.whl
.
File metadata
- Download URL: django_mailchimp_v1.3-1.4.0-py2-none-any.whl
- Upload date:
- Size: 49.6 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe2fa04ab4368f45ba0bcf642f681cc3e409035d8e24fb02b287cb6cac3e1f7c |
|
MD5 | bda82f51a36b52317d42043d9e251205 |
|
BLAKE2b-256 | 853d8215c535d301524657f904d1fd4a799563aca8c68e54736b568e0d76c7ba |