celery 以及图片验证码

什么是celery?

帮助开发者解决调用第三方或者校验过程中的网络延迟问题,或者等待造成的客户端不好的体验
celery是python里面提供的包,这个包叫做异步任务队列,可以用它实现异步任务
避免因延时等问题影响主线程任务的等待

celery的特点

任务发出者和处理者可以分布在不同的电脑上,通过中间人进行信息的交换
任务队列中的任务会进行排序,先添加的任务会被先执行

怎么使用celery

创建celery对象并配置中间人地址`

# 引入
from celery import Celery

# 创建celery对象, 
# 参数一: 随意起的名称 例如这里的demo 
celery_app = Celery('demo')

配置

配置文件:  broker_url = '中间人的地址'

celery_app.config_from_object('配置文件路径')


定义任务函数

# 我们这里需要使用上面定义好的对象, 装饰任务
# 这里有个参数: name='当前任务的名称'  这里当前任务的名称可以随便起
@celery_app.task(name='my_task')
def my_task(a, b):
    print('任务函数被执行')
    ...

启动celery,任务进行监听

celery -A 'celery_app文件路径' worker -l info

– celery :只要我们装完这个包,就是这个命令
– -A:指定了后面的celery_app文件的路径
– worker: 代表启动了工作
– -l: 一旦工作起来就会启动日志,使用这个参数指定日志的级别
– info: 日志级别

-发出任务

# 注意: 任务一定要调用 delay() 函数
my_task.delay(2, ,3)

邮箱的使用

class gpassword(APIView):
    def post(self,request):
        qqyx=request.data.get('qqyx')
        print(qqyx,'111555555')
        import random
        sui = random.randint(100000, 999999)

        send_mail(subject="新希望集团激活邮件",  # 标题
                  message="hellow word",  # 内容
                  recipient_list=[qqyx],  # 收件人`
                  from_email=EMAIL_HOST_USER,  # 发件人
                  html_message="验证码是%d,5分钟内邮箱" % sui)  # 能识别html标签

        redis_client = get_redis_connection('img_code')
        redis_client.setex(qqyx, 60 * 5, sui)
        return Response({'msg':'发送成功'})

    def put(self,request):
        qqyx=request.data.get('qqyx')
        username=request.data.get('username')
        password=request.data.get('password')
        yan=request.data.get('yan')
        redis_client = get_redis_connection('img_code')
        re=redis_client.get(qqyx).decode('utf8')
        if re!=yan:
            return Response({'msg':'验证码错误'})
        try:
            uu=User.objects.get(email=qqyx,name=username)
            uu.passwrod=password
            uu.save()
            return Response({'msg':'修改成功'})
        except Exception as e:
            return Response({'msg':'用户名或qq邮箱输入错误'})

配置

EMAIL_HOST = "smtp.qq.com"  # QQ的邮箱服务器 主键
EMAIL_PORT = "25"  # 服务端 进程端口号
EMAIL_HOST_USER = "2738491825@qq.com"
EMAIL_HOST_PASSWORD = "nmxnkouywhizdegc"  # 设置授权码 不要直接写密码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值