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

 更新时间:2020年08月01日 14:39:51   作者:viewts  
这篇文章主要介绍了Python Flask异步发送邮件实现方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

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

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

相关文章

  • Django中使用第三方登录的示例代码

    Django中使用第三方登录的示例代码

    这篇文章主要介绍了Django中使用第三方登录的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python使用concurrent.futures模块实现多进程多线程编程

    Python使用concurrent.futures模块实现多进程多线程编程

    Python的concurrent.futures模块可以很方便的实现多进程、多线程运行,减少了多进程带来的的同步和共享数据问题,下面就跟随小编一起了解一下concurrent.futures模块的具体使用吧
    2023-12-12
  • 浅谈Keras中fit()和fit_generator()的区别及其参数的坑

    浅谈Keras中fit()和fit_generator()的区别及其参数的坑

    这篇文章主要介绍了Keras中fit()和fit_generator()的区别及其参数的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • python爬取m3u8连接的视频

    python爬取m3u8连接的视频

    这篇文章主要为大家详细介绍了python如何爬取m3u8连接的视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • Python变量作用范围实例分析

    Python变量作用范围实例分析

    这篇文章主要介绍了Python变量作用范围,实例分析了Python中变量的定义与相关作用域,是Python学习中非常重要的基本技巧,需要的朋友可以参考下
    2015-07-07
  • 使用Python操作ArangoDB的方法步骤

    使用Python操作ArangoDB的方法步骤

    这篇文章主要介绍了使用Python操作ArangoDB的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • Django+vue+vscode前后端分离搭建的实现

    Django+vue+vscode前后端分离搭建的实现

    本文以一个非常简单的demo为例,介绍了利用django+drf+vue的前后端分离开发模式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2023-08-08
  • Python实现指定范围内筛选并剔除Excel表格中的数据

    Python实现指定范围内筛选并剔除Excel表格中的数据

    这篇文章主要为大家详细介绍了Python如何实现在指定范围内筛选并剔除Excel表格中的数据,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-06-06
  • PYcharm 激活方法(推荐)

    PYcharm 激活方法(推荐)

    这篇文章主要介绍了PYcharm 激活方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Pytorch之保存读取模型实例

    Pytorch之保存读取模型实例

    今天小编就为大家分享一篇Pytorch之保存读取模型实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-12-12

最新评论