python-Web-django-邮箱登陆
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-邮箱登陆的更多相关文章
- python web -- django
一. 安装 django $ pip install django (env)$ python >> import django >> django.VERSION >& ...
- python web——Django架构
环境:windows/linux/OS 需要的软件:Firefox 浏览器(别的也可以 不过firfox和python的webdriver兼容性好) git版本控制系统(使用前要配置 用户 编辑器可以 ...
- python web django base skill
web框架本质 socket + 业务逻辑 框架实现socket tonado node.js 使用WSGI实现socket django flask 自己实现框架思路 wsgiref socket ...
- python 模拟126邮箱登陆
#coding=utf-8from selenium import webdriverimport time mydriver=webdriver.Firefox()mydriver.get(&quo ...
- python web django 2nd level -- 待更新
练习代码位置 实例代码位置 --> app: myblog Form 利用Form表单验证,自己写的html 思路: 新建一个类 LoginForm(forms.Form) 新建对象 obj = ...
- Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器
Ubuntu+Django+Nginx+uWSGI+Mysql搭建Python Web服务器 闲着无聊的时候部署了一个Django项目玩,用vm虚拟机部署的. 准备工作 我使用的系统是Ubuntu16 ...
- python web框架Django入门
Django 简介 背景及介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的框架模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以 ...
- [Python] 利用Django进行Web开发系列(一)
1 写在前面 在没有接触互联网这个行业的时候,我就一直很好奇网站是怎么构建的.现在虽然从事互联网相关的工作,但是也一直没有接触过Web开发之类的东西,但是兴趣终归还是要有的,而且是需要自己动手去实践的 ...
- [Python] 利用Django进行Web开发系列(二)
1 编写第一个静态页面——Hello world页面 在上一篇博客<[Python] 利用Django进行Web开发系列(一)>中,我们创建了自己的目录mysite. Step1:创建视图 ...
- python web框架——扩展Django&tornado
一 Django自定义分页 目的:自定义分页功能,并把它写成模块(注意其中涉及到的python基础知识) models.py文件 # Create your models here. class Us ...
随机推荐
- es6 模块编译 *** is not function
今天学习vuejs,里面用到了es6的写法,遇到了一个很怪的问题,不知道有人遇到么. 安装的模块引用:import Vue from 'vue';(注意,Vue处没有{},如果加上这个就报错Uncau ...
- 编程中易犯错误汇总:一个综合案例.md
# 11编程中易犯错误汇总:一个综合案例 在上一篇文章中,我们学习了如何区分好的代码与坏的代码,如何写好代码.所谓光说不练假把式,在这篇文章中,我们就做一件事——一起来写代码.首先,我会先列出问题,然 ...
- vue中axios的二次封装
我们做项目时,虽然axios也可以直接拿来用,但是对接口比较零散,不太好进行维护,也会产生大量的重复代码,所以我在这对axios进行了统一接口处理 第一步,先在src中的公共文件夹中如utils里新建 ...
- vs2017 gitee项目无法提交同步的解决办法
下载扩展跟更新: gitee插件 然后命令行输入: git push --set-upstream origin master 参考 https://www.cnblogs.com/slwangzi ...
- Mountain Number FZU-2109数位dp
Mountain NumberFZU-2109 题目大意:一个大于0的数字x,分写成x=a[0]a[1]a[2][3]..a[n]的形式,(比如x=1234,a[0]=1,a[1]=2,a[3]=3, ...
- HZOJ 20190719 那一天她离我而去(图论最小环)
这题算是这场考试里最水的一道题了吧,就是求个最小环,但之前没练过,就在考场上yy出了最短路+次短路的傻逼解法,首先是不会求次短路,其次是这显然不对呀,自己随便想想就可以反驳这种解法. 正解比较神,但是 ...
- less的解析笔记
Less是一种动态的样式语言.Less扩展了CSS的动态行为,比如说,设置变量(Variables).混合书写模式(mixins).操作(operations)和功能(functions)等等,最棒的 ...
- Android_(控件)使用AlertDialog实现点击Button显示出多选框
单击"更多"按钮,显示出多选框 运行截图: 程序结构 (本想通过Button中android:background使用drawable资源下的图片作为按钮背景,设计太丑就去掉了Σ( ...
- [集训队作业2018]蜀道难——TopTree+贪心+树链剖分+链分治+树形DP
题目链接: [集训队作业2018]蜀道难 题目大意:给出一棵$n$个节点的树,要求给每个点赋一个$1\sim n$之内的权值使所有点的权值是$1\sim n$的一个排列,定义一条边的权值为两端点权值差 ...
- Data Science Competition中的工具汇总
除了基础的pandas,scikit-learn,numpy,matplotlib,seaborn以外 ( 1 ) category_encoders github 属于scikit-learn co ...