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()方法拿到应用程序上下文。特此记录一下
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
python 实现Flask中返回图片流给前端展示
场景需求:需要在Flask服务器的本地找一张图片返回给前端展示出来. 问题疑点:通常前端的<img>标签只会接受url的形式来展示图片,没试过在返回服务器本地的一张图片给前端. 因此写个记录一下这个看起来有点奇葩的场景(通常个人博客,个人网站没有钱用第三方的服务都会采用存储在服务器本地的方法啦.) 项目目录: dyy_project | |----static (新建flask项目时自动建的,没有任何文件) |----templates |-----index.html (前端页面) |---
-
Python Flask微信小程序登录流程及登录api实现代码
一.先来看看效果 接口请求返回的数据: 二.官方登录流程图 三.小程序登录流程梳理: 1.小程序端调用wx.login 2.判断用户是否授权 3.小程序端访问 wx.getUserInfo 4.小程序端js代码: wx.login({ success: resp => { // 发送 res.code 到后台换取 openId, sessionKey, unionId console.log(resp); var that = this; // 获取用户信息 wx.getSetting({ su
-
在flask中使用python-dotenv+flask-cli自定义命令(推荐)
最近在重构 flask 项目的时候发现项目的环境变量异常的混乱,非常不便于管理.而且,更重要的事情是我需要通过自定义命令来运行 devlopment 和 production 两种项目环境. 自定义命令工具--flask-cli 在Flask 1.0+ 中已经支持了flask-cli,在翻阅了flask-cli文档之后,发现文档中提供的自定义命令的方法约束还是有点多,而且介绍的也不是特别详细.后来,通过查看flask-cli的源码发现flask-cli是基于Click开发的. Click is
-
Python flask框架如何显示图像到web页面
代码如下 webfig1.py from flask import Flask from flask import render_template import matplotlib.pyplot as plt import io import base64 app = Flask(__name__) @app.route('/') def build_plot(): img = io.BytesIO() y = [1,2,3,4,5] x = [0,2,1,3,4] plt.plot(x,y)
-
Python中Flask-RESTful编写API接口(小白入门)
1.API接口:hello world 案例 from flask import Flask from flask_restful import Api, Resource app = Flask(__name__) api = Api(app) class HelloWorld(Resource): def get(self): return {'hello': 'world'} api.add_resource(HelloWorld, '/') if __name__ == '__main_
-
Python flask框架实现浏览器点击自定义跳转页面
代码如下 _init_.py from flask import Flask, request, url_for, redirect, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/cool_form', methods=['GET', 'POST']) def cool_form(): if request.
-
python 解决flask 图片在线浏览或者直接下载的问题
目前是把图片存在mongodb数据库,实现一个方法,比如 访问 /get_pic/ID 能实现图片在浏览器打开,添加了一个状态,比如?filename=1.png,实现图片直接下载, 需要在读取图片函数中,给response 加上headers: 在 flask 中 response=make_response(f.read()) 需要下载就添加以下headers 当filename为中文时会报asicc编解码错误, 此时,import urllib (py3) filename=urllib.
-
Python flask框架实现查询数据库并显示数据
首先数据库长这样 我们想将name和age列显示到web页面 上代码sqlshowweb.py from flask import Flask from flask import render_template import pymysql app = Flask(__name__) @app.route('/') def index(): conn = pymysql.connect(host='39.106.168.84', user='flask_topvj_net', password=
-
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
-
Python Celery异步任务队列使用方法解析
Celery是一个异步的任务队列(也叫做分布式任务队列),一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需要的工具. celery的优点 1:简单,容易使用,不需要配置文件 2:高可用,任务执行失败或执行过程中发生连续中断,celery会自动尝试重新执行任务 3:快速,一个单进程的celery每分钟可以处理上百万个任务 4:灵活,几乎celery的各个组件都可以被扩展 celery应用场景 1:异步发邮件,一般发邮件等比较耗时的操作,这个时候需要提交任务给cel
-
python通过smpt发送邮件的方法
本文实例讲述了python通过smpt发送邮件的方法.分享给大家供大家参考.具体实现方法如下: import smtplib, socket fromaddr = a@b.com toaddrs = ["c@d.com", "e@f.com"] msg = open("multimsg.eml", "r").read() try: server = smtplib.SMTP('10.0.0.1') result = serve
-
C#实现异步发送邮件的方法
本文实例讲述了C#实现异步发送邮件的方法.分享给大家供大家参考.具体如下: 下面的代码可以实现异步发送邮件,等邮件发送出去后会自动调用回调函数,这样在发送邮件时就不会卡住程序不动了 MailMessage m = new MailMessage ("item@jb51.net", "raja@jb51.net", "This is the subject for the authorized email.", "This is the
-
Python文本处理简单易懂方法解析
这篇文章主要介绍了Python文本处理简单易懂方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 自从认识了python这门语言,所有的事情好像变得容易了,作为小白,逗汁儿今天就为大家总结一下python的文本处理的一些小方法. 话不多说,代码撸起来. python大小写字符互换 在进行大小写互换时,常用到的方法有4种,upper().lower().capitalize() 和title(). str = "www.dataCASTLE.
-
Python调用C/C++的方法解析
Python是解释性语言, 底层就是用c实现的, 所以用python调用C是很容易的, 下面就总结一下各种调用的方法, 给出例子, 所有例子都在ubuntu9.10, python2.6下试过. 1. Python 调用 C (base) 想在python中调用c函数, 如这儿的fact #include <Python.h> int fact(int n) { if (n <= 1) return 1; else return n * fact(n - 1); } PyObject*
-
Python基于SMTP发送邮件的方法
在很多时候,使用 Python 发送邮件可能没有办法使用邮件服务器提供的 API,因为不是所有的邮件服务商都会提供 API 供客户使用的. 通常使用邮件 API 的邮件发送服务都需要额外的收费. 因此我们再邮件测试发送的时候,可能需要的是 SMTP 邮件发送服务,通常这个服务是所有邮件服务商都会提供的. 要使用 SMTP 邮件发送服务,你需要有下面的信息才可以完成和测试: SMTP 邮件服务器的地址,端口,登录用户名和登录用户密码 发送和接收邮件的地址 邮件的主题和正文 看起来是不是有点复杂,实
-
python+flask实现API的方法
本文为大家分享了python+flask实现API的具体方法,供大家参考,具体内容如下 Flask 框架 #-*-coding:utf-8-*- #pip install flask #pip install flask-restful from flask import Flask app = Flask(__name__) @app.route('/') def index(): return "hello world!" if __name__ == '__main__': ap
-
Python Flask上下文管理机制实例解析
前言 上下文这个概念多见于文章中,是一句话中的语境,也就是语言环境.一句莫名其妙的话出现会让人不理解什么意思,如果有语言环境的说明,则会更好,这就是语境对语意的影响. 上下文是一种属性的有序序列,为驻留在环境内的对象定义环境.在对象的激活过程中创建上下文,对象被配置为要求某些自动服务,如同步.事务.实时激活.安全性等等. 如在计算机中,相对于进程而言,上下文就是进程执行时的环境.具体来说就是各个变量和数据,包括所有的寄存器变量.进程打开的文件.内存信息等.可以理解上下文是环境的一个快照,是一个用
-
python匿名函数的使用方法解析
一.lambda关键字的使用方法 func=lambda x:x+1 print(func(1)) #2 print(func(2)) #3 #以上lambda等同于以下函数 def func(x): return(x+1) 注释:可以这样认为,lambda作为一个表达式,定义了一个匿名函数,上例的代码x为入口参数,x+1为函数体.在这里lambda简化了函数定义的书写形式.是代码更为简洁,但是使用函数的定义方式更为直观,易理解. 二.Python中,也有几个定义好的全局函数方便使用的,filt
随机推荐
- zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
- 服务器ARP病毒的特征及防护说明
- PHP连接SQLServer2005方法及代码
- Java使用JavaMail API发送和接收邮件的代码示例
- Java8中的lambda表达式入门教程
- Objective-c代码如何移植为Swift代码 Objective-c代码转移到Swift过程介绍
- C# 数组查找与排序实现代码
- js实现网页检测是否安装了 Flash Player 插件
- 老生常谈PHP面向对象之命令模式(必看篇)
- Linux通过命令压缩与解压缩的方法| tar, tar.gz, tar.bz2
- C#实现对AES加密和解密的方法
- js 解决“options为空或不是对象”
- 收藏的经典签名完整版
- Java Web中常用的分页组件(Java端实现)
- 深入理解NumPy简明教程---数组1
- 服务器端的JavaScript脚本 Node.js 使用入门
- Internet连接共享上网完全攻略
- 主控端的IP变化如何处理?
- C++虚函数的实现机制分析
- 深入C#字符串和享元(Flyweight)模式的使用分析