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 字典(dict)遍历的四种方法性能测试报告
Jun 25 Python
跟老齐学Python之深入变量和引用对象
Sep 24 Python
实例Python处理XML文件的方法
Aug 31 Python
如何使用python爬取csdn博客访问量
Feb 14 Python
python实现简单点对点(p2p)聊天
Sep 13 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
Python操作Excel插入删除行的方法
Dec 10 Python
PyQt5 多窗口连接实例
Jun 19 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
Django与pyecharts结合的实例代码
May 13 Python
matplotlib bar()实现百分比堆积柱状图
Feb 24 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的FTP学习(三)
2006/10/09 PHP
一个SQL管理员的web接口
2006/10/09 PHP
PHP实现用户认证及管理完全源码
2007/03/11 PHP
PHP面向对象概念
2011/11/06 PHP
10条php编程小技巧
2015/07/07 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
轻松掌握JavaScript单例模式
2016/08/25 Javascript
详解微信小程序审核不通过的解决方法
2018/01/17 Javascript
JavaScript的词法结构精华篇
2018/10/17 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
vue+element项目中过滤输入框特殊字符小结
2019/08/07 Javascript
Vue + Node.js + MongoDB图片上传组件实现图片预览和删除功能详解
2020/04/29 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
剖析Python的Tornado框架中session支持的实现代码
2015/08/21 Python
关于反爬虫的一些简单总结
2017/12/13 Python
对python的unittest架构公共参数token提取方法详解
2018/12/17 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
Python with标签使用方法解析
2020/01/17 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Python实现数字的格式化输出
2020/08/01 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
python cookie反爬处理的实现
2020/11/01 Python
css3 transform属性详解
2014/09/30 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
html5的canvas方法使用指南
2014/12/15 HTML / CSS
大学生职业生涯规划书前言
2014/01/09 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
党支部考察意见范文
2015/06/02 职场文书
单位同意报考证明
2015/06/17 职场文书
市级三好生竞选稿
2015/11/21 职场文书
《猴王出世》教学反思
2016/02/23 职场文书
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python