发送邮件
在用户模型中添加是否通过验证邮箱的字段
因为我们的AbstractUser中并未提供是否验证过邮箱的字段,所以我们需要在model中添加一个email_active字段
active_email=models.BooleanField(default=False,verbose_name='activate email')
在添加这条数据后别忘了迁移,否则数据库会报错
添加完成
完成我们发送邮件需要的包和setting配置
配置setting.py字段
由于django自带了邮件发送系统,我们只需要在setting.py文件中添加以下字段注册邮箱
这是QQ邮箱的形式
EMAIL_BACKEND='django.core.mail.backends.smtp.EmailBackend'
EMAIL_USE_SSL = True
# 邮箱服务
EMAIL_HOST = 'smtp.qq.com'
# 端口号
EMAIL_PORT = 465
# 账号
EMAIL_HOST_USER = '[email protected]'
# 授权秘钥 密钥要在QQ邮箱内开启IMAP/SMTP服务会获得
EMAIL_HOST_PASSWORD =''
# 发件人
EMAIL_FROM='<[email protected]>'
添加验证邮箱需要的包
这里我们使用itsdangerous 包加密用户验证邮箱发回给后端
下载itsdangerous包
在终端进入项目所在虚拟环境,键入
pip install itsdangerous
下载itsdangerous包,就直接可以使用
根据逻辑确定视图类和序列化器
这里选用了UpdataAPIView视图和ModelSerializer序列化器,至于为什么使用UpdataAPIView是因为我用户登录以后用户专用的界面都是通过他们浏览器留下的token来进行数据访问的,所以我们需要实时更新这些信息,比如用户的邮箱。其实也就是前端传回了一个PUT