Python Flask异步发送邮件实现方法解析
第一步,修改工厂函数,配置邮件参数
fromflaskimportFlask fromconfigimportConfig fromflask_sqlalchemyimportSQLAlchemy fromflask_mailimportMail db=SQLAlchemy() mail=Mail() defcreate_app(): app=Flask(__name__) app.config.from_object(Config) db.init_app(app) mail.init_app(app)from.controllerimportcontroller app.register_blueprint(controller) returnapp
第二步,新建一个线程来发送邮件
fromflaskimportcurrent_app,render_template fromflask_mailimportMessage fromthreadingimportThread frommainimportmail defsend_async_email(app,msg): withapp.app_context(): mail.send(msg) defsend_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() returnthr
从current_app的_get_current_object()方法拿到应用程序上下文。特此记录一下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。