用Django全栈开发(进阶篇)——06. Django + Celery + Flower实现在线监控后台异步耗时操作

大家好,这是皮爷给大家带来的最新的学习Python能干啥?之Django教程的进阶版

在之前《用Django全栈开发》系列专辑里面,皮爷详细的阐述了如何编写一个完整的网站,具体效果可以在代码中获取到。

从进阶篇开始,每一篇文章都是干货满满,干的不行。这一节,我们来说:如何使用Django + Celery + Flower来实现耗时操作编程异步,并且能够在线实时监控。

不吹不黑,这篇文章是全网写的最详细的Celery+Django+Flower的文章。

获取整套教程源码唯一途径,关注『皮爷撸码』,回复『peekpa.com』

皮爷的每一篇文章,都配置相对应的代码。这篇文章的代码对应的Tag是“Advanced_06”。

在这里插入图片描述

耗时操作

可能有同学会问,啥是耗时操作?这么的打个比方:

比如,我们每天访问Peekpa网站的数据中心,看到很多漂亮的小姐姐。突然有一天,皮爷给大家推出了一个『一键发送种子』功能。这个发送邮件的功能,其实对于后台来说就是一个耗时操作。

我们这里就拿Github线上的Peekpa代码给大家做一下例子。我们要实现的操作就是要把日本最近的10条地震信息发送给指定的邮箱。

那么在准备耗时操作之前,我们需要准备一下如何让Django发送邮件。

发送邮件

首先,如果要发送邮件,我们需要注册一个邮箱账号,126,163和QQ邮箱都可以,我们主要使用的是邮箱的SMTP服务。

我们这里以126邮箱为例。

首先注册一个126邮箱账户,请记住邮箱账号和密码。然后登陆到邮箱里面,我们找到设置选项:

在这里插入图片描述

看到关于POP3/SMTP/IMAP这个选项,其实我们的主要目标就是SMTP服务。所以打开这个选项,去页面选择开启SMTP服务:

在这里插入图片描述

在这里,不同的邮件系统可能开通流程不太一样,126的开通流程就是需要用手机APP扫描开通,不管怎么样,开通了SMTP服务就可以了。像上图一样,显示的是开通了服务。

接下来,我们就要确认各个邮件商的SMTP服务地址了,这里皮爷给大家稍微整理了一下,如果没有你注册的邮件的SMTP服务器地址,那就需要自己百度:

SMTP服务器 端口
smtp.126.com 465
smtp.qq.com 465/587
smtp.163.com 465/994

这样准备工作就做完了。我以126邮箱为例,到目前需要记住的有以下内容:

  • 邮箱账号;
  • 邮箱密码;
  • 邮箱的SMTP服务器地址;

接下来,我们要做的就是在Django中配置发邮件的内容了。

Django配置发邮件

Django框架默认是集成了发送邮件功能的。路径是django.core.mail,我们可以直接导入这个路径下的send_mail()方法,直接调动即可完成发送功能。

我们进入源码里面可以看一下send_mail()方法:

def send_mail(subject, message, from_email, recipient_list,
              fail_silently=False, auth_user=None, auth_password=None,
              connection=None, html_message=None):
    """
    Easy wrapper for sending a single message to a recipient list. All members
    of the recipient list will see the other recipients in the 'To' field.

    If auth_user is None, use the EMAIL_HOST_USER setting.
    If auth_password is None, use the EMAIL_HOST_PASSWORD setting.

    Note: The API for this method is frozen. New code wanting to extend the
    functionality should use the EmailMessage class directly.
    """

可以看到,这里传入的参数有一个recipient_list,当Django调用这个方法发送完邮件之后,收件人是能看到其他收件人的邮箱,相当于是一起发送的。这个方法是封装好的方法,如果要使用自定义的,这里说应该直接使用EmailMessage类就好,这个EmailMessage类的路径是django.core.mail里。

这里我们就方便讲解,直接给大家调用send_mail()方法来说。

在发送邮件之前,我们可以简单的在peekpa/settings.py里面这是这么几个参数:

EMAIL_HOST = "smtp.126.com"  # 发送邮件的smtp服务器(从QQ邮箱中取得)
EMAIL_HOST_USER = "glalert@126.com"  # 用于登录smtp服务器的用户名,也就是发送者的邮箱
EMAIL_HOST_PASSWORD = "xxxxxxxx"  # 授权码,和用户名user一起,用于登录smtp, 非邮箱密码
EMAIL_PORT = 465  # smtp服务器SSL端口号,默认是465
EMAIL_USE_SSL = True

这几个参数对应的意思:

<
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue.js和Django是两个非常流行和高性能的全栈开发框架。 Vue.js是一个用于构建用户界面的渐进式JavaScript框架,它的目标是通过简单易用的API来简化前端开发。Vue.js采用了虚拟DOM和响应式设计的概念,提供了高效的渲染和更新机制,能够快速地响应用户的操作。Vue.js还有一套完整的生态系统,包括丰富的插件和组件库,可以大大提高开发效率,减少重复劳动。 Django是一个用Python编写的高性能全栈Web框架,它遵循MTV(模型-模板-视图)的设计模式,提供了一系列易用的工具和功能,能够快速地开发出高质量的Web应用程序。Django拥有完善的数据库支持和ORM(对象关系映射)功能,可以轻松地操作数据库,同时还提供了强大的验证和安全性功能,保证了系统的高稳定性和安全性。 将Vue.js和Django结合起来使用,可以充分发挥两者的优势,实现高性能的全栈开发。Vue.js可以负责构建用户界面,通过前端路由和组件化的方式,实现单页应用程序的开发。同时,Vue.js还可以通过API和后端进行交互,实现数据的获取和更新。Django则负责处理数据操作和处理逻辑,通过强大的ORM功能,可以轻松地操作数据库,并进行数据的增删改查。 由于Vue.js和Django都是高性能的框架,能够快速地渲染和更新数据,提高了系统的响应速度和用户体验。同时,两者都有较好的扩展性和可维护性,使得团队开发更加高效和便捷。 综上所述,结合使用Vue.js和Django可以实现高性能的全栈开发,提高开发效率和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值