Создайте приложение для рассылки новостей, используя Mailchimp и Django

Опубликовано: 14 Декабря, 2022

В этой статье мы будем использовать MailChimp и Django для создания простого почтового приложения. Когда люди подпишутся на наше приложение, мы узнаем, как создать список аудитории и сохранить пользователей в MailChimp с помощью Python.

Думали ли вы, как они могут отправлять электронные письма подписчикам одним щелчком мыши? MailChimp — лучшая программа для электронного маркетинга. Он также позволяет вам управлять своей аудиторией и отправлять массовые электронные письма, позволяя создавать несколько списков. Однако просто отправлять электронные письма недостаточно. У него должны быть привлекательные макеты и текст MailChimp, и вы можете напрямую выбрать предустановленные шаблоны для своего электронного письма.

Создайте бесплатную учетную запись MailChimp:

Чтобы создать учетную запись MailChimp и получить ключ API, выполните следующие действия:

Шаг 1: Зайдите на MailChimp.com и зарегистрируйтесь бесплатно. Также настройте профиль своей учетной записи.

Шаг 2: Теперь, чтобы получить ключ API, в левом нижнем углу экрана перейдите к профилю >> «Дополнительно» >> «Ключ API» >> «Создать ключ API» . Кроме того, было бы полезно, если бы вы сохранили свой ключ API. Мы будем использовать его позже в нашем приложении Django.

Шаг 3: Далее нам нужно создать список аудитории. Перейдите на https://us14.admin.mailchimp.com/lists/ и нажмите «Создать аудиторию» . Заполните необходимые данные и просмотрите свою аудиторию на панели управления аудиторией.

Шаг 4: Теперь нам нужно получить идентификатор списка аудитории. Заходим в настройки аудитории -> id списка . Сохраните идентификатор списка, чтобы использовать его в приложении Django.

Создайте приложение Django:

Шаг 1: Пользователям необходимо ввести в терминал приведенную ниже команду, чтобы создать новое приложение Django.

django-admin startproject mailchimpNewsletter

Шаг 2: Далее перейдите в каталог проекта.

cd mailchimpNewsletter

Теперь пользователям необходимо создать файл views.py в каталоге проекта. Кроме того, создайте папку шаблонов и создайте в ней файлы home.html ( templates>> home.html ), Success.html и error.html .

Структура проекта: Это должно выглядеть так.

Шаг 3: Прежде чем мы углубимся в настройку проекта, установите библиотеку Python Mailchimp-marketing , введя приведенную ниже команду в каталог проекта.

pip install mailchimp-marketing

Шаг 4: На этом этапе мы интегрируем Mailchimp с приложением Django.

  • urls.py: добавьте приведенный ниже код к коду файла urls.py. В этом файле мы настроили URL-адреса для нашего приложения Django.

Python3




from django.contrib import admin
from django.urls import path
from . import views
 
urlpatterns = [
    path("admin/", admin.site.urls),
    path("", views.subscribeToNewsLetter, name="subscribeToNewsLetter"),
    path("success", views.success, name="success"),
    path("error", views.error, name="error"),
]

  • views.py: в этот файл мы добавим базовый код для подписки пользователя на Mailchimp.

Python3




from django.shortcuts import redirect, render
from mailchimp_marketing import Client
from mailchimp_marketing.api_client import ApiClientError
 
api_key = "acfa4fffd113041454c6d953a71fa3e5-us14"
list_id = "f4f5ad20f7"
 
# function to manage subscriber
def subscribeToNewsLetter(request):
    if request.method == "POST":
 
        # getting users input from the form
        email = request.POST["email"]
        firstName = request.POST["firstName"]
        lastName = request.POST["lastName"]
 
        # initializing the mailchimp client with api key
        mailchimpClient = Client()
        mailchimpClient.set_config({
            "api_key": api_key,
        })
 
        userInfo = {
            "email_address": email,
            "status": "subscribed",
            "merge_fields": {
                "FNAME": firstName,
                "LNAME": lastName
            }
        }
 
        try:
            # adding member to mailchimp audience list
            mailchimpClient.lists.add_list_member(list_id, userInfo)
            return redirect("success")
        except ApiClientError as error:
            print(error.text)
            return redirect("error")
 
    return render(request, "home.html")
 
def success(request):
    return render(request, "success.html")
 
def error(request):
    return render(request, "error.html")

  • home.html: это базовый шаблон для сбора электронной почты, имени и фамилии пользователя.

HTML




<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <title>Email subscriptions</title>
 
    <!-- Bootstrap -->
 
    <style>
        form {
            position: absolute;
            left: 40%;
            display: flex;
            flex-direction: column;
        }
 
        input {
            margin: 10px 0;
            width: 300px;
            height: 50px;
        }
 
        button {
            width: 300px;
            height: 50px;
        }
 
        h1 {
            color: green;
            margin-bottom: 20px;
        }
    </style>
</head>
 
<body style="text-align:center">
 
    <h1>GeeksforGeeks</h1>
    <h2>Subscribe to Our NewsLetter App</h2>
 
    <!--Email subscription Form -->
    <form method="post" action="{% url "subscribeToNewsLetter" %}">
        {% csrf_token %}
        <input type="email" name="email" placeholder="Your Email">
        <input type="text" name="firstName" placeholder="Your firstName">
        <input type="text" name="lastName" placeholder="Your lastName">
        <button class="btn btn-secondary" type="submit">Submit</button>
    </form>
 
</body>
 
</html>

  • success.html: мы перенаправим пользователя на этот шаблон, если он успешно подпишется на нашу рассылку.

HTML




<!DOCTYPE html>
<html lang="en" dir="ltr">
 
<head>
    <meta charset="utf-8">
    <title>successfully</title>
        integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
</head>
 
<body>
    <div class="jumbotron jumbotron-fluid">
        <div class="container">
            <h1 class="display-4">Awesom</h1>
            <p class="lead">You are successful to signup in newsletter website,
                please look forward.</p>
 
 
 
 
        </div>
    </div>
</body>
 
</html>

  • error.html: мы перенаправим пользователя на этот шаблон, если при подписке на нашу рассылку произойдет какая-либо ошибка.

HTML




<!DOCTYPE html>
<html lang="en" dir="ltr">
 
<head>
    <meta charset="utf-8">
    <title>Failure</title>
        integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk" crossorigin="anonymous">
</head>
 
<body>
    <div class="jumbotron jumbotron-fluid">
        <div class="container">
            <h1 class="display-4">Uh oh!</h1>
            <p class="lead">Contact the developer</p>
 
 
 
 
            <form class="" action="/error" method="post">
                <button class="btn btn-lg " type="submit"
                        name="button">Try again</button>
            </form>
        </div>
    </div>
</body>
 
</html>

Шаг 5: Добавьте DIRS: [os.path.join.(BASE_DIR, 'templates')] в список шаблонов.

Шаг 6: Чтобы запустить проект на своем терминале, перейдите в каталог проекта и введите следующую команду.

python manage.py runserver

Вывод: вы увидите, что приложение успешно работает на локальном хосте: 8000.

Наконец, в MailChimp вы можете перейти в Аудитория >> Все контакты , и вы увидите список всех добавленных контактов.