Python Flask異步發(fā)送郵件實(shí)現(xiàn)方法解析
第一步,修改工廠函數(shù),配置郵件參數(shù)
from flask import Flaskfrom config import Configfrom flask_sqlalchemy import SQLAlchemyfrom flask_mail import Maildb = SQLAlchemy()mail = Mail()def 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
第二步,新建一個(gè)線程來(lái)發(fā)送郵件
from flask import current_app, render_templatefrom flask_mail import Messagefrom threading import Threadfrom main import maildef send_async_email(app, msg): 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.html = render_template(’{}.html’.format(template), **kwargs) thr = Thread(target = send_async_email, args = [app, msg]) thr.start() return thr
從current_app的_get_current_object()方法拿到應(yīng)用程序上下文。特此記錄一下
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. JavaScript中的AOP編程的基本實(shí)現(xiàn)2. 淺談JavaScript中等號(hào)、雙等號(hào)、 三等號(hào)的區(qū)別3. Python如何進(jìn)行時(shí)間處理4. java結(jié)構(gòu)性模式之變壓器模式介紹(二)5. python裝飾器三種裝飾模式的簡(jiǎn)單分析6. Django框架安裝及項(xiàng)目創(chuàng)建過(guò)程解析7. Spring security 自定義過(guò)濾器實(shí)現(xiàn)Json參數(shù)傳遞并兼容表單參數(shù)(實(shí)例代碼)8. 詳解Python模塊化編程與裝飾器9. python使用ctypes庫(kù)調(diào)用DLL動(dòng)態(tài)鏈接庫(kù)10. PHP VS ASP
