Создайте приложение для рассылки новостей, используя Mailchimp и Django
В этой статье мы будем использовать 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 adminfrom django.urls import pathfrom . import viewsurlpatterns = [ 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, renderfrom mailchimp_marketing import Clientfrom mailchimp_marketing.api_client import ApiClientErrorapi_key = "acfa4fffd113041454c6d953a71fa3e5-us14"list_id = "f4f5ad20f7"# function to manage subscriberdef 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 --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css"> <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> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" 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> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" 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 вы можете перейти в Аудитория >> Все контакты , и вы увидите список всех добавленных контактов.