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 ...
随机推荐
- (九)zabbix监控web应用
1)web应用监控介绍 使用zabbix自带的web场景可以监控url的状态码,响应时间,url的下载速度,非常的棒 思路:定义模板-->创建应用集--->定义web场景--->定义 ...
- 【agc002d】Stamp Rally
题目大意 无向图中,每次询问从x和y分别出发,一共经过z个点,使需要走过编号最大的边最小. 解题思路 对于暴力,我们对于每个询问二分答案ans,将1~ans的边加入,用并查集维护,如果x和y在同一个并 ...
- 系统开发模型MVC和三层架构
系统开发模型共经历四个阶段: 一.纯JSP 二.JSP+JavaBean的ModeI1 JavaBean的分类 三.MVC的Model2 四.三层架构
- vue学习时遇到的问题(二)
1. this.$nextTick veu中进行数据改变后,并不会马上刷新视图:用nextTick可告诉执行下个函数后马上刷新视图: this.$nextTick(function(){ // ...
- html上标与下标应用
HTML 标签应用示例: <html> <head> <meta http-equiv="Content-Type" content="te ...
- jquery submit选择器 语法
jquery submit选择器 语法 作用::submit 选择器选取类型为 submit 的 <button> 和 <input> 元素.如果 <button> ...
- 《剑指offer》算法题第八天
今日题目(对应书上第39~42题): 数组中出现次数超过一半的数字 最小的k个数(top k,重点!) 数据流中的中位数 连续子数组的最大和 今天的题目都比较经典,特别是第2题. 1. 数组中出现次数 ...
- ACM之一个简单的数学问题
一个简单的数学题 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 zyc最近迷上了数学,一天,dj想出了一道数学题来难住他.算出1/n,但zyc一时答不上来希望大家能编程 ...
- E. Compress Words(Hash,KMP)
E. Compress Words time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- Charles中文破解版下载安装及使用教程
下载地址:https://pan.baidu.com/s/1praYZAw23psZLi59hKJjqw 一. 简介及安装 Charles 是在 PC 端常用的网络封包截取工具,但它不仅仅能在pc端使 ...