1. 程式人生 > >Django學習筆記(二十三):Celery非同步操作傳送郵件

Django學習筆記(二十三):Celery非同步操作傳送郵件

非同步操作傳送郵件

在settings.py裡新增郵箱配置

from os import environ
# 郵件配置
EMAIL_USE_SSL = True

EMAIL_HOST = 'smtp.qq.com'  # 如果是 163 改成 smtp.163.com

EMAIL_PORT = 465

EMAIL_HOST_USER = environ.get("EMAIL_SENDER")  # 帳號

EMAIL_HOST_PASSWORD = environ.get("EMAIL_PWD")  # 授權碼(****)

DEFAULT_FROM_EMAIL = EMAIL_HOST_USER

在tasks.py中新增非同步操作程式碼

from celery import task
from django.core.mail import send_mail
from django.conf import settings

@task
def send_email(email):
    title = "郵件的標題"
    msg = "這個是非同步"
    from_email = settings.DEFAULT_FROM_EMAIL
    recievers = [email,]
    send_mail(title,msg,from_email,recievers,fail_silently=True)

在views.py中新增非同步呼叫程式碼

from .tasks import send_email
def first_celery(req):
    #任務函式的非同步呼叫
    send_email.delay("[email protected]")
    return HttpResponse("OK")

實現效果

相關推薦

Django學習筆記十三:Celery非同步操作傳送郵件

非同步操作傳送郵件 在settings.py裡新增郵箱配置 from os import environ # 郵件配置 EMAIL_USE_SSL = True EMAIL_HOST = 'smt

Java學習筆記十三:final關鍵字

類繼承 ron 滿足 單詞 靜態 bsp 條件 str 進行 final關鍵字有三種使用場景: final修飾類 final修飾方法 final修飾變量 final修飾的類,不能再有子類繼承。 只要滿足以下條件就可以把一個類設計為final類: 不是專門為繼承而設

Linux學習筆記十三shell介紹、history命令歷史、命令補全和別名、通配符、

alias shell 歷史命令 通配符 一、shell介紹 shell是一個命令解釋器,提供用戶和機器之間的交互 支持特定語法,比如邏輯判斷、循環 每個用戶都可以有自己特定的shell CentOS7默認shell為bash(Bourne Agin Shell) 還有zsh、ksh等、二、

Effective_STL 學習筆記十三 考慮用有序 vector 代替關聯容器

  標準關聯容器的典型實現是平衡二叉查詢樹, 一個平衡二叉查詢樹是一個對插入、刪除和查詢的混合操作優化的資料結構 1. 建立。通過插入很多元素建立一個新的資料結構 2. 查詢。在資料結構中查詢指定的資訊片。 3. 重組。修改資料結構的內容,也許通過刪除所有現有資料和在原地插入新資料。 &

TensorFlow學習筆記十三四種Cross Entropy交叉熵演算法實現和應用

交叉熵(Cross-Entropy) 交叉熵是一個在ML領域經常會被提到的名詞。在這篇文章裡將對這個概念進行詳細的分析。 1.什麼是資訊量? 假設是一個離散型隨機變數,其取值集合為,概率分佈函式為 p ( x ) = r (

tensorflow學習筆記十三:variable與get_variable

Variable tensorflow中有兩個關於variable的op,tf.Variable()與tf.get_variable()下面介紹這兩個的區別 tf.Variable與tf.get_variable() tf.Variable(ini

Linux學習筆記十三 -- QT的安裝和解除安裝

1.QT簡介 Qt 是一個跨平臺C++圖形使用者介面應用程式開發框架。它可以用來開發GUI程式和非GUI程式(比如控制檯工具和伺服器)。 2.QT安裝 使用如下命令: sudo apt-get install qt5-default qtcreato

Unity3D學習筆記十三:事件接口、虛擬搖桿、層級管理和背包系統

ram veh ces 跟隨鼠標 style 組件 屏幕 向上 grid 事件接口 IDragHandler(常用):鼠標按下拖動時執行(只要鼠標在拖動就一直執行) IDropHandler:對象拖動結束時,如果鼠標在物體的範圍內,執行一次(依賴於IDragHandler存

openCV學習筆記十三 —— 形態學濾波—— 開運算、閉運算、形態學梯度、頂帽、黑帽

原理       程式 #include<opencv2/opencv.hpp> using namespace std; using namespace cv; /* 巨集定義 */ #define ORIGINAL_WINDOW

Django學習筆記:使用Template讓HTML、CSS參與網頁建立

Django學習筆記(二):使用Template讓HTML、CSS參與網頁建立 通過本文章實現: 瞭解Django中Template的使用 讓HTML、CSS等參與網頁建立 利用靜態檔案應用網頁樣式 一、Template的使用 Template是Django利用渲染器將模板檔案與資料內容結合

Django學習筆記

【建立一個投票APP】 在Django的專案裡,每個APP約定俗成由一個python的包構成。Django會自動生成APP的目錄結構,這樣你就可以專心編寫程式碼而不用為組織目錄煩惱了。 Projects 和 APP 的區別: APP是實

Django學習筆記十六:閱讀計數和優化計數防重新整理

閱讀計數主要就是記錄網頁被瀏覽的次數,防刷的方法就是記錄瀏覽的cookie,使每個cookie只能增加一次閱讀數, 當然,刪除cookie和關閉瀏覽器就可以重新增加閱讀數,更加優化的方法還在學習中,先分享這個我會的 models.py的程式碼 class Books(m

Django學習筆記十八:伺服器的試用和部署

因為博主穴力,所以一開始的學習都是在虛擬機器上進行的,專案學習的差不多了,是時候學習一下部署了 特意在某雲上買了個伺服器,試試水,看看能不能再15天試用期完成部署的全部操作練習 先在雲主機上設定賬密,這樣方便在xshell上使用 在xshell中新建連線,輸

Django學習筆記----簽到設計邏輯及資料庫基本操作API

1.釋出會簽到系統設計原理 簽到系統設計原理: 簽到功能頁面屬於某一場獨立釋出會。在釋出列表中,每一條釋出會都含有一個“簽到”連結,用來開啟對應簽到頁面。 簽到連結根據釋出會id來確認:/sig

菜雞的Django學習筆記如何建立第一個部落格頁面

1.pycharm,new project,django,專案名設為myblog 2.Tools,Run manage.py Task… 3.在下面輸入startapp blog 這裡建立了一個名叫blog的應用 4.將應用名新增到setting.p

Django 學習筆記第一個網頁

Django 第一個 Hello World 專案 經過上一篇的安裝,我們已經擁有了Django 框架 1.選擇專案預設存放的地址 預設地址是C:\Users\Lee,也就是進入cmd控制檯的地址,建立專案後命令 django-admin startproject project_test 預設地址就新建了一

Django學習筆記--通過model自動生成資料表

首先要編寫好自己的model from django.db import models # Create your models here. class Article(models.Model

統計學習精要(The Elements of Statistical Learning)課堂筆記十三:原型方法和最近鄰KNN

筆記(二十二)需要等我找到上一本筆記本再說,暫時不知道扔到哪裡去了...汗。屆時補上。 這一章主要是講的原型方法(prototype)和最近鄰(KNN)。相對而言直覺更強,公式沒那麼複雜。 --------------------------筆記開始---------

python之Django學習筆記---Django從工程創建、app創建到表建模在頁面的顯示

ins req sql charm 如果 步驟 spa use view 創建工程: 在命令行中切換目錄至需要創建工程的目錄,然後在命令行中輸入如下命令創建djangoTestPro工程 D:\PycharmProjects\untitled\MyTestPr

python學習筆記:異常處理

錯誤 fetchall nbsp 如果 info blog months api root 1 def calc(a,b): 2 res=a/b 3 return res 4 def main(): 5 money=input(‘輸入多少