1. 程式人生 > >初識Django(郵件小工具)

初識Django(郵件小工具)

1 、建立專案 startapp+app
2、將html檔案貼上,static資料夾貼上
3、在目錄中新建urls
4、在settings中新增app名稱,並且在最下邊寫如下程式碼

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]

# 配置郵箱伺服器地址
EMAIL_HOST = 'smtp.sina.cn'
# 郵箱伺服器埠
EMAIL_PORT = 25
# 傳送郵件使用者名稱
EMAIL_HOST_USER = '[email protected]'
# 密碼
EMAIL_HOST_PASSWORD = 'Sfy199906'
# 是否使用安全傳輸
EMAIL_USE_TLS = True

5、在專案目錄下的urls.py檔案中寫如下程式碼

from django.contrib import admin
from django.conf.urls import url,include

urlpatterns = [
    url('admin/', admin.site.urls),
    url('email/',include('app.urls'))
]

6、在app下的urls.py檔案中寫如下程式碼

from django.conf.urls import url
from .views import *


urlpatterns = [
    url(r'^$', email_index, name='eamil_index'),
    url(r'^sendmail/$', sendmail, name='sendmail')
]

app下的view.py程式碼為

from django.shortcuts import render, redirect, HttpResponse
# 引入傳送郵件函式send_mail()
from django.core.mail import send_mail
from new_email import settings
# Create your views here.


def email_index(request):

    return render(request, 'email.html')


def sendmail(request):

    if request.method == 'POST':

        address = request.POST.get('address')
        title = request.POST.get('title')
        content = request.POST.get('content')
        # 1.郵件標題 2.郵件內容 3.發件人帳號 4.收件人帳號(多個)
        result = send_mail(title, content, settings.EMAIL_HOST_USER, [address],html_message=content)
        if result:
            return HttpResponse('郵件傳送成功!')
        else:
            return HttpResponse('郵件傳送失敗!')

    else:
        return redirect('/email')


html程式碼為

{% load static %}
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
      <title>Document</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3個meta標籤*必須*放在最前面,任何其他內容都*必須*跟隨其後! -->
    <title>Bootstrap 101 Template</title>

    <!-- Bootstrap -->
     <link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
     <link href="{% static 'css/signin.css' %}" rel="stylesheet">

  </head>
  <body>

  <div class="container">

      <form class="form-signin" action="{% url 'sendmail' %}" method="post">
        {% csrf_token %}
        <h2 class="form-signin-heading">郵件小工具</h2>
        <label for="inputEmail" class="sr-only">Email address</label>
        <input type="email" id="inputEmail" class="form-control" name="address" placeholder="收件人郵箱地址" required autofocus>
        <label for="inputPassword" class="sr-only">郵件標題</label>
        <input type="text" id="inputPassword" class="form-control" placeholder="郵件標題" name="title" required>
        <textarea class="form-control" rows="3" placeholder="請輸入郵件內容" name="content"></textarea>
        <button class="btn btn-lg btn-primary btn-block" type="submit">傳送</button>
      </form>

    </div> <!-- /container -->

    <!-- jQuery (Bootstrap 的所有 JavaScript 外掛都依賴 jQuery,所以必須放在前邊) -->
    <script src="{% static 'js/jquery.min.js' %}"></script>
    <!-- 載入 Bootstrap 的所有 JavaScript 外掛。你也可以根據需要只加載單個外掛。 -->
    <script src="{% static 'js/bootstrap.min.js' %}"></script>
  </body>
</html>