Flask实战第67天:Flask+Celery实现邮件和短信异步发送

之前在项目中我们发送邮件和 短信都是阻塞的,现在我们来利用Celery来优化它们

官方使用文档: http://flask.pocoo.org/docs/1.0/patterns/celery/

redis服务器及插件,还有cerely在上节我们已经安装好,这里就不重复过程了。

首先,来完成邮件

在项目下新建tasks.py

from flask import Flask
import config
from celery import Celery
from flask_mail import Message
from exts import mail

##这里没有直接使用from bbs import app,是因为会出现循环引用的问题
app = Flask(__name__)
app.config.from_object(config)
mail.init_app(app)

#在配置文件需要配置CELERY_RESULT_BACKEND、CELERY_BROKER_UR
def make_celery(app):
    celery = Celery(app.import_name, backend=app.config[‘CELERY_RESULT_BACKEND‘],
                    broker=app.config[‘CELERY_BROKER_URL‘])
    celery.conf.update(app.config)
    TaskBase = celery.Task
    class ContextTask(TaskBase):
        abstract = True
        def __call__(self, *args, **kwargs):
            with app.app_context():
                return TaskBase.__call__(self, *args, **kwargs)
    celery.Task = ContextTask
    return celery

celery = make_celery(app)

@celery.task
def send_mail(subject,recipients,body):
    message = Message(subject=subject,recipients=recipients,body=body)
    mail.send(message)

编辑config.py

# Celery相关配置
CELERY_RESULT_BACKEND = "redis://10.2.2.120:6379/0"
CELERY_BROKER_URL = "redis://10.2.2.120:6379/0"

编辑cms.views.py发送邮件的部分

原文地址:https://www.cnblogs.com/sellsa/p/9757905.html

时间: 2024-11-05 21:43:43

Flask实战第67天:Flask+Celery实现邮件和短信异步发送的相关文章

flask开发restful api系列(5)-短信验证码

我们现在开发app,注册用户的时候,不再像web一样,发送到个人邮箱了,毕竟个人邮箱在移动端填写验证都很麻烦,一般都采用短信验证码的方式.今天我们就讲讲这方面的内容. 首先,先找一个平台吧.我们公司找的容联云通讯这个平台,至少目前为止,用的还可以.先在容联上注册一下,然后创建一个应用,如下图所示: 我只勾选了2个功能,他们这边还有很多其他功能,暂时用不到,就不选了.好了,点击"确认",一个应用就弄好了,下面就尝试着写代码发短信吧. 容联为开发者提供了免费测试功能,但一个号码基本不会超过

基于Flask实现后台权限管理系统 - Flask

1. Flask 1.1. 简介 Flask是使用Python编写的轻量级Web应用框架,其WSGI工具箱采用Werkzeug,模板引擎则使用Jinja2.Flask使用BSD授权,Flask也被称为“microframework”,因为它使用简单的核心,用extension增加其他功能,用户可以随意地进行组合,满足自己的要求. 一段最简单的Flask代码如下: 1 from flask import Flask 2 3 app = Flask(__name__) 4 5 6 7 @app.ro

Flask 【第二篇】Flask基础

知识点回顾 1.flask依赖wsgi,实现wsgi的模块:wsgiref,werkzeug,uwsgi 2.实例化Flask对象,里面是有参数的 app = Flask(__name__,template_folder='templates',static_url_path='/xxxxxx') 3.两种添加路由的方式 方式一: @app.route('/xxxx') # @decorator def index(): return "Index" 方式二: def index():

Flask框架(一)—— Flask简介

目录 Flask框架介绍 一.Flask简介 二.flask安装与使用 1.安装 2.使用 3.简单案例--flask实现用户登录 Flask框架介绍 一.Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借

黑马程序员金山卫士实战短信备份2集

黑马程序员 大师班 安卓项目实战-分分钟搞定 金山卫士实战短信备份2集 有很多用户们在使用智能手机的过程中有及时清理手机,删除电话记录以及短信的习惯,以此来保证手机的纯净,但是有时我们会有一些重要的信息想要保存下来,这时该怎么办呢?备份就是一个很好的办法... 课程包含 短信备份.代码优化 下载地址:http://www.feixueteam.net/thread-947-1-1.html

Android实战简易教程-第四十枪(窃听风云之短信监听)

近期在做监听验证码短信自己主动填入的功能,无意间想到了一个短信监听的办法. 免责声明:短信监听本身是一种违法行为,这里仅仅是技术描写叙述.请大家学习技术就可以.(哈哈) 本实例是基于bmob提供的后台服务,将监听到的短信自己主动上传到bmob数据库中. 一.代码实现: 1.首先实现javabean对象. package com.example.messagecut; import cn.bmob.v3.BmobObject; public class MsgContent extends Bmo

Android实战简易教程-第三十九枪(第三方短信验证平台Mob和验证码自动填入功能结合实例)

用户注册或者找回密码时一般会用到短信验证功能,这里我们使用第三方的短信平台进行验证实例. 我们用到第三方短信验证平台是Mob,地址为:http://mob.com/ 一.注册用户.获取SDK 大家可以自行注册,得到APPKEY和APPSECRET,然后下载SDK,包的导入方式如截图: 二.主要代码 SMSSendForRegisterActivity.java:(获取验证码页) package com.qiandaobao.activity; import java.util.regex.Mat

Android 项目开发实战:聚合数据短信验证码

聚合数据集成短信验证码官网: http://www.juhe.cn/docs/sdk/id/67 我根据文档集成了一个例子 效果: 源码下载:http://download.csdn.net/detail/zhaihaohao1/8917409 参考视频:http://www.jikexueyuan.com/course/495.html 文章来源:http://blog.csdn.net/zhaihaohao1/article/details/46980551

Java秒杀系统实战系列~整合RabbitMQ实现消息异步发送

摘要: 本篇博文是“Java秒杀系统实战系列文章”的第八篇,在这篇文章中我们将整合消息中间件RabbitMQ,包括添加依赖.加入配置信息以及自定义注入相关操作组件,比如RabbitTemplate等等,最终初步实现消息的发送和接收,并在下一篇章将其与邮件服务整合,实现“用户秒杀成功发送邮件通知消息”的功能! 内容: 对于消息中间件RabbitMQ,想必各位小伙伴没有用过.也该有听过,它是一款目前市面上应用相当广泛的消息中间件,可以实现消息异步通信.业务服务模块解耦.接口限流.消息分发等功能,在微