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()方法拿到应用程序上下文。特此记录一下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。