Создайте приложение для рассылки новостей, используя 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
| fromdjango.contrib importadminfromdjango.urls importpathfrom. importviewsurlpatterns =[    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
| fromdjango.shortcuts importredirect, renderfrommailchimp_marketing importClientfrommailchimp_marketing.api_client importApiClientErrorapi_key ="acfa4fffd113041454c6d953a71fa3e5-us14"list_id ="f4f5ad20f7"# function to manage subscriberdefsubscribeToNewsLetter(request):    ifrequest.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)            returnredirect("success")        exceptApiClientError as error:            print(error.text)            returnredirect("error")    returnrender(request, "home.html")defsuccess(request):    returnrender(request, "success.html")deferror(request):    returnrender(request, "error.html") | 
- home.html: это базовый шаблон для сбора электронной почты, имени и фамилии пользователя.
HTML
| <!DOCTYPE html><htmllang="en"><head>    <metacharset="UTF-8">    <title>Email subscriptions</title>    <!-- Bootstrap -->    <linkrel="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><bodystyle="text-align:center">    <h1>GeeksforGeeks</h1>    <h2>Subscribe to Our NewsLetter App</h2>    <!--Email subscription Form -->    <formmethod="post"action="{% url "subscribeToNewsLetter" %}">        {% csrf_token %}        <inputtype="email"name="email"placeholder="Your Email">        <inputtype="text"name="firstName"placeholder="Your firstName">        <inputtype="text"name="lastName"placeholder="Your lastName">        <buttonclass="btn btn-secondary"type="submit">Submit</button>    </form></body></html> | 
- success.html: мы перенаправим пользователя на этот шаблон, если он успешно подпишется на нашу рассылку.
HTML
| <!DOCTYPE html><htmllang="en"dir="ltr"><head>    <metacharset="utf-8">    <title>successfully</title>    <linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"        integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"crossorigin="anonymous"></head><body>    <divclass="jumbotron jumbotron-fluid">        <divclass="container">            <h1class="display-4">Awesom</h1>            <pclass="lead">You are successful to signup in newsletter website,                please look forward.</p>        </div>    </div></body></html> | 
- error.html: мы перенаправим пользователя на этот шаблон, если при подписке на нашу рассылку произойдет какая-либо ошибка.
HTML
| <!DOCTYPE html><htmllang="en"dir="ltr"><head>    <metacharset="utf-8">    <title>Failure</title>    <linkrel="stylesheet"href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css"        integrity="sha384-9aIt2nRpC12Uk9gS9baDl411NQApFmC26EwAOH8WgZl5MYYxFfc+NcPb1dKGj7Sk"crossorigin="anonymous"></head><body>    <divclass="jumbotron jumbotron-fluid">        <divclass="container">            <h1class="display-4">Uh oh!</h1>            <pclass="lead">Contact the developer</p>            <formclass=""action="/error"method="post">                <buttonclass="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 вы можете перейти в Аудитория >> Все контакты , и вы увидите список всех добавленных контактов.