第一步,修改工廠函式,配置郵件引數
from flask import flask
from config import config
from flask_sqlalchemy import sqlalchemy
from flask_mail import mail
db = sqlalchemy()
mail = mail()
deijxpcpxdqf create_app():
app = flask(__name__)
app.config.from_object(config)
db.init_app(app)
mail.init_app(app) from .controller import controller
app.register_blueprint(controller)
return app
第二步,新建乙個執行緒來傳送郵件
from flask import current_app, render_template
from flask_mail import message
from threading import thread
from main import mail
def send_async_email(app, mwww.cppcns.comsg):
with app.app_context():
mail.send(msg)
def send_email(to程式設計客棧, subject, template = 'index', **kwargs):
app = current_app._get_current_object()
msg = message(subject, sender = app.config['mail_username'], recipients = [to])
msg.htmijxpcpxdql = render_template('{}.html'.format(template), **kwargs)
thr = thread(target = send_async_email, args = [app, msg])
thr.start()
return thr
從current_app的_get_current_object()方法拿到應用程式上下文。特此記錄一下
本文標題: python flask非同步傳送郵件實現方法解析
本文位址:
python Flask(四) 郵件傳送
電子郵件傳送和接收的過程 flask mail傳送郵件的配置資訊 配置傳送郵件的相關資訊 指定郵件伺服器的網域名稱或者ip 指定埠,預設25,但qq郵箱預設為 埠號465或587 此處的密碼並非郵箱登入密碼,而是開啟pop3 def send mail to,subject,info msg mes...
Python Flask後端非同步處理(三)
前一篇博文我們已經將基礎知識和環境配置進行了介紹 本篇博文在實際應用場景中使用celery,對flask後端進行非同步處理。首先編寫乙個celerytask.py檔案進行celery的配置,同時耗時任務也寫在該檔案中 from celery import celery from szheconsol...
Python Flask後端非同步處理(二)
在實際的應用場景中,如使用者註冊,使用者輸入了註冊資訊後,後端儲存資訊到資料庫中,然後跳轉至登入介面,這些操作使用者需要等待的時間非常短,但是如果是有耗時任務,比如對輸入的 進行漏洞掃瞄,在後端處理就會花費幾分鐘的時間,不可能讓使用者等待頁面重新整理幾分鐘,所以需要進行後端非同步處理。之前使用的後端...