使用Mailchimp和Django创建通讯应用

使用Mailchimp和Django创建通讯应用

在这篇文章中,我们将使用MailChimp和Django来制作一个简单的邮件应用。当人们订阅我们的应用时,我们将学习如何使用Python创建一个受众列表并在MailChimp中保存用户。

你是否考虑过他们如何只用一次点击就能向订阅者发送电子邮件?MailChimp是最伟大的电子邮件营销软件。它还允许你管理你的受众,并通过允许你建立多个名单来批量发送电子邮件。然而,仅仅发送电子邮件是不够的。它应该有一些吸引人的MailChimp布局和文字,你可以直接选择预设的电子邮件模板。

创建MailChimp免费账户:

要创建一个MailChimp账户并获得一个API密钥,请遵循以下步骤。

第1步:到MailChimp.com免费注册。同时,设置你账户的资料。

第2步:现在,要获得API密钥,从你屏幕的左下方,进入_profile >> Extras >> API Key >> Create API Key _ 。此外,如果你存储你的API密钥,会有帮助。我们以后会在我们的Django应用程序中使用它。

使用Mailchimp和Django创建通讯应用

第3步:接下来,我们需要创建一个观众名单。进入https://us14.admin.mailchimp.com/lists/ ,并点击创建受众。填写所需的细节,在受众仪表板上看到你的受众。

使用Mailchimp和Django创建通讯应用

第4步:现在,我们需要得到观众名单的ID。进入观众_设置 – > 列表ID _ 。存储列表ID,以便在Django应用程序中使用它。

使用Mailchimp和Django创建通讯应用

创建Django APP:

第1步:用户需要在终端输入以下命令来创建一个新的Django应用程序。

django-admin startproject mailchimpNewsletter

第2步:接下来,进入项目目录。

cd mailchimpNewsletter

现在,用户需要在项目目录下创建一个views.py文件。同时,创建一个templates文件夹,并在其中创建一个home.html ( templates >> home.html ) 、success.html 和 error.html文件。

项目结构:它应该看起来像这样。

使用Mailchimp和Django创建通讯应用

第3步:在我们深入设置项目之前,通过输入以下命令在项目目录中安装Mailchimp-marketing python库。

pip install mailchimp-marketing

第4步:在这一步中,我们将把Mailchimp与Django应用程序整合起来。

  • urls.py。在urls.py文件的代码中加入以下代码。我们已经在这个文件中为我们的Django应用程序设置了URLs。
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。
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。它是收集用户的电子邮件、名字和姓氏的基本模板。
<!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。当用户成功订阅我们的通讯时,我们将把他们重定向到这个模板。
<!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。当用户在订阅我们的通讯时发生一些错误,我们将把用户重定向到这个模板。
<!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’)]

使用Mailchimp和Django创建通讯应用

第6步:要在你的终端上运行该项目,请进入项目目录并输入以下命令。

python manage.py runserver

输出:你将看到该应用程序在localhost:8000上成功运行。

使用Mailchimp和Django创建通讯应用

最后,在MailChimp中,你可以进入Audience >> All contacts ,你会看到所有添加的联系人的列表。

使用Mailchimp和Django创建通讯应用

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程