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中is和id的用法
Apr 03 Python
Python3.2中Print函数用法实例详解
May 19 Python
python读取excel表格生成erlang数据
Aug 26 Python
Python使用asyncio包处理并发详解
Sep 09 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
Python爬虫番外篇之Cookie和Session详解
Dec 27 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
python实现一个简单的udp通信的示例代码
Feb 01 Python
python 求定积分和不定积分示例
Nov 20 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
python 字典item与iteritems的区别详解
Apr 25 Python
Django 构建模板form表单的两种方法
Jun 14 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中在数据库中保存Checkbox数据(2)
2006/10/09 PHP
PHP+ajaxfileupload+jcrop插件完美实现头像上传剪裁
2014/06/09 PHP
php基于SQLite实现的分页功能示例
2017/06/21 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
Javascript MD4
2006/12/20 Javascript
URL编码转换,escape() encodeURI() encodeURIComponent()
2006/12/27 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
js中的值类型和引用类型小结 文字说明与实例
2010/12/12 Javascript
jquery实现商品拖动选择效果代码(自写)
2013/05/28 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
jQuery的end()方法使用详解
2015/07/15 Javascript
使用bootstrap插件实现模态框效果
2017/05/10 Javascript
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
微信小程序使用radio显示单选项功能【附源码下载】
2017/12/11 Javascript
一文了解Vue中的nextTick
2019/05/06 Javascript
js实现的格式化数字和金额功能简单示例
2019/07/30 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[00:52]DOTA2国际邀请赛
2020/02/21 DOTA
Python pickle类库介绍(对象序列化和反序列化)
2014/11/21 Python
20个常用Python运维库和模块
2018/02/12 Python
Django rstful登陆认证并检查session是否过期代码实例
2019/08/13 Python
Python实现多线程下载脚本的示例代码
2020/04/03 Python
css3 position fixed固定居中问题解决方案
2014/08/19 HTML / CSS
HTML5的文档结构和新增标签完全解析
2017/04/21 HTML / CSS
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
讲党性心得体会
2014/09/03 职场文书
刑事代理授权委托书
2014/09/17 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
工人先锋号申报材料
2014/12/29 职场文书
业务员辞职信范文
2015/03/02 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
vue封装数字翻牌器
2022/04/20 Vue.js