django注册用邮箱发送验证码的实现
作者:舔舔柠檬 发布时间:2022-11-08 06:59:59
标签:django,邮箱,验证码
视图代码
lis = []#设置一个空列表用来存放发送的验证码,用来验证
def yzm1():
res1 = ""
for i in range(4):#用四个随机数组成验证码
num = random.randint(0, 9)
res1 += str(num)
lis.append(res1)#将验证码放入空的列表中
return res1#返回验证码
class zc(View):
def get(self, request):
return render(request, 'zc.html', locals())
def post(self, request):
name = request.POST['qq']#获取前端传递进来的数据
subject = '验证码'
message = vercode()#获取验证码
form = '837620306@qq.com'#获取发送验证码的邮箱
# EMAIL_HOST_USER
rcipient_list = [name]
res = send_mail(subject=subject, message=message, from_email=form, recipient_list=rcipient_list)#发送验证码返货真或假,假代表没有发送成功
if res == 1:#判断是否发送成功
return redirect('/app01/yzm/')#成功的话跳转到验证的网页
else:#不成功的话返回注册界面
return render(request, 'zc.html', locals())
def yzm2(request):
if request.method == 'GET':
return render(request, 'yzm.html', locals())
elif request.method == 'POST':
a = request.POST['much']#获取到用户输入的验证码
if a == lis[-1]:#取最新的验证码
return HttpResponse('验证码正确')
else:
return HttpResponse('no')
用来发送验证码的邮箱需要打开POP3/SMTP服务和IMAP/SMTP服务,并且获得POP3/SMTP服务的授权码
settings 配置文件
另外需要对django的settings文件进行设置
# 设置发送邮件服务器:smtp.qq.com,
EMAIL_HOST = 'smtp.qq.com'
# 设置端口号,如果使用的是SSL,端口号为465或587
EMAIL_PORT = 25
#设置发件人邮箱
EMAIL_HOST_USER = 'xxxxx'
# 设置发件人 授权码 (POP3/SMTP服务的授权码)
EMAIL_HOST_PASSWORD = 'xxxxx'
# 设置是否启用安全链接
EMAIL_USER_TLS = True
来源:https://blog.csdn.net/weixin_46643772/article/details/115734722


猜你喜欢
- 一. 语法1.1 获取当前页面的所有cookie:var allCookies = document.cookie;allCookies 是
- Flask是一个用Python编写的Web应用程序框架,Flask是python的web框架,最大的特征是轻便,让开发者自由灵活的兼容要开发
- 如下所示:import urllib.requestimport sysimport http.cookiejarimport urllib
- 使用本文给出的方法就可以制作出一个简单的rss阅读器了。用xmldom方法打开xml文件,如果是本地的没有问题,就是用Server.MapP
- 前言最近无意间发现mysql的coalesce,又正好有时间,就把mysql中coalesce()的使用技巧总结下分享给大家,下面来一起看看
- 这个decorator是什么意思呢?很简单,它接受一个log的参数,即传入logger对象。然后它会先把函数名打印出来,接下来,会利用enu
- 简介testify可以说是最流行的(从 GitHub star 数来看)Go 语言测试库了。testify提供了很多方便的函数帮助我们做as
- 1. 查看数据库的版本 select @@version 2. 查看数据库所在机器操作
- Python曾经对我说:"时日不多,赶紧用Python"。于是看到了一个基于python的微信开源库:itchat,玩了
- 1 慢查询定义指mysql记录所有执行超过long_query_time参数设定的时间阈值的SQL语句。慢查询日志就是记录这些sql的日志。
- 1、显式等待它指定要查找的节点,然后指定一个最长的等待时间,如果规定时间内加载出来了这个节点,就返回查找的节点;如果规定时间内没有加载出该节
- 基本属性cv2.imread(文件名,属性) 读入图像属性:指定图像用哪种方式读取文件 cv2.IMREAD_COLOR:读入彩色图像,默认
- Mysql自增主键id不是以此逐级递增一、介绍在mysql数据库添加数据时使用ON DUPLICATE KEY UPDATE进行数据更新时可
- ThreadLocal在threading模块中,可以见得它是为我们的线程服务的。它的主要作用是存储当前线程的变量,各个线程之间的变量名是可
- 修改数据库为多用户模式SQL语句修改数据位多用户模式如下:DECLARE @SQL VARCHAR(MAX); SET @SQL='
- 简介使用faker可以获取很多模拟数据,如:姓名、电话、地址、银行、汽车、条形码、公司、信用卡、email、user_agen等等学会使用这
- 利用python的递归来执行求和、计数、求最大元素的方法简直溜到爆,这里粘贴一下代码:列表的递归求和:def sum(list): if l
- JavaScript 中的并没有提供像 VBScript 里的 DateAdd 方法用于日
- 增加操作:变量名[key] = value # 通过key添加value值,如果key存在则覆盖 &nbs
- 导言Bootstrap 轮播(Carousel)插件是一种灵活的响应式的向站点添加滑块的方式。除此之外,内容也是足够灵活的,可以是图像、内嵌