邮箱发送验证码实现注册(QQ邮箱)

登录自己的QQ邮箱进入主页面
点击左上角的设置 --> 账户
在这里插入图片描述

找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
在这里插入图片描述
开启‘POP3/SMTP服务 (如何使用 Foxmail 等软件收发邮件?)’进行手机验证

在这里插入图片描述
在这里插入图片描述
记住授权码

在django的settings里配置

在这里插入图片描述
邮箱登录密码填刚才记住的授权码

视图Views:

利用到redis的缓存,存储验证码

from rest_framework.views import APIView
from rest_framework.response import Response
from .sers import *
import hashlib
import random
import string
import redis
from django.core.mail import send_mail


rd = redis.Redis(port=6379,host='localhost')

class RegisterView(APIView):
    def post(self,request):
        name = request.data.get('name')
        pwd = request.data.get('passwd')
        passwd = hashlib.md5()
        passwd.update(pwd.encode('utf-8'))
        passwd.hexdigest().upper()
        ve_code = request.data.get('ve_code')
        email = request.data.get('email')
        vcode = rd.get(email)
        if not vcode:
            return Response({'msg':'验证码失效'})
        user = User.objects.filter(name=name,passwd=passwd).first()
        if user:
            return Response({'msg':'用户已存在,请直接登陆'})
        vcode = vcode.decode()
        if vcode == ve_code:
            data = {
                'name':name,
                'email':email,
                'passwd':passwd,
            }
            User.objects.create(name=name,passwd=passwd,email=email)
            return Response({'msg':'注册成功','code':200})
        else:
            return Response({'msg':'注册失败','code':500})

# 发送邮箱验证码
class Send_email(APIView):
    def post(self,request):
        email = request.data.get('email')
        try:
            capta = ''
            words = ''.join((string.digits))
            for i in range(6):
                capta += random.choice(words)
            rd.set(email,capta)
            rd.expire(capta,60*5)
            send_mail(
                subject='注册邮件',
                message='注册验证码!!!!!',
                from_email='xxxxxxxx@qq.com',
                recipient_list=[email],
                html_message='注册验证码:{}'.format(capta)
            )
            return Response({'msg':'验证码已发送','code':200})
        except Exception as e:
            return Response({'msg':'验证码发送失败','code':400})

发送验证码即可进行注册啦~~

### 使用 AutoGPTQ 库量化 Transformer 模型 为了使用 `AutoGPTQ` 对 Transformer 模型进行量化,可以遵循如下方法: 安装所需的依赖包是必要的操作。通过 pip 安装 `auto-gptq` 可以获取最新版本的库。 ```bash pip install auto-gptq ``` 加载预训练模型并应用 GPTQ (General-Purpose Tensor Quantization) 技术来减少模型大小和加速推理过程是一个常见的流程。下面展示了如何利用 `AutoGPTQForCausalLM` 类来进行这一工作[^1]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer from auto_gptq import AutoGPTQForCausalLM model_name_or_path = "facebook/opt-350m" quantized_model_dir = "./quantized_model" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 加载已经量化的模型或者创建一个新的量化器对象用于量化未压缩过的模型 gptq_model = AutoGPTQForCausalLM.from_pretrained(quantized_model_dir, model=model, tokenizer=tokenizer) ``` 对于那些希望进一步优化其部署环境中的模型性能的人来说,`AutoGPTQ` 提供了多种配置选项来自定义量化参数,比如位宽(bit-width),这有助于平衡精度损失与运行效率之间的关系。 #### 注意事项 当处理特定硬件平台上的部署时,建议查阅官方文档以获得最佳实践指导和支持信息。此外,在实际应用场景之前应该充分测试经过量化的模型以确保满足预期的质量标准。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值