setting:

# 发送邮箱
EMAIL_HOST = 'smtp.163.com'
EMAIL_PORT = 465
EMAIL_HOST_USER = '666666@163.com' #EMAIL_HOST_PASSWORD = '666666'
EMAIL_HOST_PASSWORD = ''
EMAIL_USE_SSL = True

until:

import random
def range_num(num):
# 定义一个种子,从这里面随机拿出一个值,可以是字母
seeds = ""
# 定义一个空列表,每次循环,将拿到的值,加入列表
random_num = []
# choice函数:每次从seeds拿一个值,加入列表
for i in range(num):
random_num.append(random.choice(seeds))
# 将列表里的值,变成四位字符串
return "" . join(random_num)

views:

from django.shortcuts import render,HttpResponse,redirect
from app01.models import *
from django.core.mail import send_mail
from my_pro import settings
import threading
import json
from app01.utils.function import range_num def getpwd(request):
'''忘记密码'''
res = {'s':None,'info':None}
if request.method == 'POST':
''''''
try:
username = request.POST.get('username')
email = request.POST.get('email')
member_obj = Member.objects.filter(member_name=username,member_email=email).first()
if member_obj:
'''发送邮件'''
code = range_num(4)
request.session['email_code'] = code
liuyan = '用户{}获得密钥{}!如果非本人操作!请及时联系本站!'.format(username,code)
tuple1 = ('邮箱密码查找信息:',
liuyan,
settings.EMAIL_HOST_USER,
['666666@qq.com',])
t = threading.Thread(target=send_mail,args=tuple1)
t.start()
print(liuyan)
# send_mail('邮箱密码查找信息:',
# liuyan,
# settings.EMAIL_HOST_USER,
# ['666666@qq.com'])
print(111)
res['s'] = 1
res['info'] = '邮箱发送成功!'
return HttpResponse(json.dumps(res))
else:
res['s'] = 0
res['info'] = '邮箱发送失败!'
return HttpResponse(json.dumps(res))
except EOFError as e:
print(e)
res['s'] = 0
res['info'] = '输入错误'
return HttpResponse(json.dumps(res)) return render(request,'app01_get_pwd.html') def repwd(request):
'''更新密码'''
res = {'s': None, 'info': None}
if request.method == 'POST':
''''''
try:
username = request.POST.get('username')
email = request.POST.get('email')
pwd = request.POST.get('pwd')
repwd = request.POST.get('repwd')
if pwd == repwd:
Member.objects.filter(member_name=username,member_email=email).first().update(member_pwd=pwd)
res['s'] = 1
res['info'] = '更新密码成功!'
del request.session['email_code']
else:
res['s'] = 0
res['info'] = '密码错误!'
except:
res['s'] = 0
res['info'] = '输入错误1'
return HttpResponse(json.dumps(res))

html:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>忘记密码</title>
</head>
<body>
<a href="{% url 'app01:index' %}">首页</a>
<a href="{% url 'app01:login' %}">登陆页面</a>
<form action="#">
{% csrf_token %}
账号:<input type="text" name="username"><br>
邮箱:<input type="text" name="email">
<input type="button" value="发送邮件" id="sendemail"><br>
<div class="maina">
</div> </form> </body>
</html>
<script src="/static/js/jquery.min.js"></script>
<script src="/static/layer/layer.js"></script>
<script> $(document).on('click','#sendemail',function () {
$.post('{% url 'app01:getpwd' %}', $('form').serialize(), function (data) { if (data['s'] == 1) {
layer.msg(data['info']);
// 更新密码页面
var html1 = "新密码:<input type='text' name='pwd'><br>确认密码:<input type='text' name='repwd'> <input type='button' value='更改密码'> ";
$(".maina").html(html1);
} else {
//登陆失败
layer.msg(data['info']);
}
return false;
},'json');
}); $(document).on('click','#repwd',function () {
$.post('{% url 'app01:repwd' %}', $('form').serialize(), function (data) { if (data['s'] == 1) {
layer.msg(data['info']);
// 跳转主页面
location.href="{% url 'app01:index' %}";
} else {
//更改失败
layer.msg(data['info']);
}
return false;
},'json');
});
</script>

python-Web-django-邮箱登陆的更多相关文章

  1. python web -- django

    一. 安装 django $ pip install django (env)$ python >> import django >> django.VERSION >& ...

  2. python web——Django架构

    环境:windows/linux/OS 需要的软件:Firefox 浏览器(别的也可以 不过firfox和python的webdriver兼容性好) git版本控制系统(使用前要配置 用户 编辑器可以 ...

  3. python web django base skill

    web框架本质 socket + 业务逻辑 框架实现socket tonado node.js 使用WSGI实现socket django flask 自己实现框架思路 wsgiref socket ...

  4. python 模拟126邮箱登陆

    #coding=utf-8from selenium import webdriverimport time mydriver=webdriver.Firefox()mydriver.get(&quo ...

  5. python web django 2nd level -- 待更新

    练习代码位置 实例代码位置 --> app: myblog Form 利用Form表单验证,自己写的html 思路: 新建一个类 LoginForm(forms.Form) 新建对象 obj = ...

  6. Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器

    Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...

  7. python web框架Django入门

    Django 简介 背景及介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以 ...

  8. [Python] 利用Django进行Web开发系列(一)

    1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...

  9. [Python] 利用Django进行Web开发系列(二)

    1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...

  10. python web框架——扩展Django&tornado

    一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class Us ...

随机推荐

  1. 检验注解@Validated 和@valid说明

  2. es实战之数据导出成csv文件

    从es将数据导出分两步: 查询大量数据 将数据生成文件并下载 本篇主要是将第二步,第一步在<es实战之查询大量数据>中已讲述. csv vs excel excel2003不能超过6553 ...

  3. 微软Blazor组件发布,DevExpress v19.1.8中可用:Charts新功能

    点击获取DevExpress v19.2.3最新完整版试用下载 DevExpress UI for Blazor在v19.1.8中可用,此次更新发布包括DevExpress Blazor组件的主要功能 ...

  4. jupyter lab 报错

    C:\Users\WQBin>jupyter lab [I :: kernels found [I :: No cio_test package found. [I ::45.137 LabAp ...

  5. nginx代理服务

    代理----介于客户端和服务器之间 ICMP\POP\IMAP是邮件的收/发相关协议;RTMP是视频,音频等流媒体协议 http代理 正向代理 如果一个公司多台电脑中只有一台电脑能上网,那么不能上网的 ...

  6. Java-DateUtils工具类

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  7. TCP/IP 三次握手和四次挥手

    TCP 三次握手 作用:建立TCP连接 1.三次握手是客户端先发起请求到服务器,此时服务器处于LISTEN监听状态,A会先发送一个连接请求的报文---SYN=1,ACK=0,seq=x ,这个包也称为 ...

  8. js中for..of..和迭代器

    for..of是ES6中引入的新特性,它主要的作用是:循环一个可迭代的对象. 它可以循环遍历,数组.字符串.Set对象等等 示例一: let str = 'hello' for (item of st ...

  9. spark写数据入kafka示范代码

    一.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  10. 【Winform-自定义控件】 DataGridView多维表头

    [datagridview与treeview绑定] treeview            代码: DataTable dtable = new DataTable("Rock") ...