Создайте приложение для рассылки новостей, используя 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 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 --> < 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 вы можете перейти в Аудитория >> Все контакты , и вы увидите список всех добавленных контактов.