Python Flask异步发送邮件实现方法解析


Posted in Python onAugust 01, 2020

第一步,修改工厂函数,配置邮件参数

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_mail import Mail

db = 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

第二步,新建一个线程来发送邮件

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, 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()方法拿到应用程序上下文。特此记录一下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python制作检测Linux运行信息的工具的教程
Apr 01 Python
flask中主动抛出异常及统一异常处理代码示例
Jan 18 Python
Python 反转字符串(reverse)的方法小结
Feb 20 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
python numpy元素的区间查找方法
Nov 14 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
详解python中各种文件打开模式
Jan 19 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
keras topN显示,自编写代码案例
Jul 03 Python
Python3爬虫里关于代理的设置总结
Jul 30 Python
Python实现弹球小游戏
Aug 01 #Python
序列化Python对象的方法
Aug 01 #Python
Python 忽略文件名编码的方法
Aug 01 #Python
Python 如何展开嵌套的序列
Aug 01 #Python
Python 日期与时间转换的方法
Aug 01 #Python
Python 执行矩阵与线性代数运算
Aug 01 #Python
Python实现数字的格式化输出
Aug 01 #Python
You might like
一个PHP操作Access类(PHP+ODBC+Access)
2007/01/02 PHP
关于页面优化和伪静态
2009/10/11 PHP
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
jQuery+css实现的切换图片功能代码
2016/01/27 Javascript
indexedDB bootstrap angularjs之 MVC DOMO (应用示例)
2016/06/20 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
jQuery树控件zTree使用方法详解(一)
2017/02/28 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
js实现秒表计时器
2019/12/16 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
vue实现点击出现操作弹出框的示例
2020/11/05 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
2020/10/16 Python
纯CSS和jQuery实现的在页面顶部显示的进度条效果2例(仿手机浏览器进度条效果)
2014/04/16 HTML / CSS
html5-canvas中使用clip抠出一个区域的示例代码
2018/05/25 HTML / CSS
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
苏格兰在线威士忌商店:The Whisky Barrel
2019/05/07 全球购物
人民教师的自我评价分享
2014/02/21 职场文书
师范类求职信
2014/06/21 职场文书
市级三好学生事迹材料
2014/08/27 职场文书
乡镇防汛工作汇报
2014/10/28 职场文书
2014年小学校长工作总结
2014/12/08 职场文书
地雷战观后感
2015/06/09 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
数学备课组工作总结
2015/08/12 职场文书
超市啤酒狂欢夜策划方案范文!
2019/07/03 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js