修改密码功能
数据库部分:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#重置密码
def reset_pass(phone,password):
conn,cursor = get_conn()
sql = "update userdata set userpass='" + password + "' where userphone='" + phone + "'"
try :
print ( "正在修改密码..." )
resetflag = cursor.execute(sql)
conn.commit()
close_conn(conn,cursor)
if (resetflag = = 1 ):
print ( "修改成功" )
return 1
else :
print ( "修改失败!" )
return 0
except :
print ( "系统错误...修改密码失败!" )
return 0
|
路由部分:
1
2
3
4
5
6
7
8
9
10
11
12
|
#用户修改密码
@app .route( '/resetpass' ,methods = [ 'GET' , 'POST' ])
def resetpass():
userphone = request.values.get( 'userphone' )
resetpass = request.values.get( 'resetpass' )
print ( "路由获得手机号:" + userphone + "\n" )
print ( "路由获得新密码:" + resetpass + "\n" )
flag = sql.reset_pass(userphone,resetpass)
if (flag = = 1 ):
return jsonify({ "data" : 1 })
else :
return jsonify({ "data" : 0 })
|
html页面:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta http-equiv = "X-UA-Compatible" content = "ie=edge" >
< title >树懒电影---重置您的密码</ title >
< style type = "text/css" >
#resetform{
margin-top: 350px;
margin-left: 750px;
}
</ style >
</ head >
< body >
< form method = "post" id = "resetform" >
< tr >
< td >< input type = "text" id = "userphone" value = "" placeholder = "输入您的手机号码" ></ td >
</ tr >< br >
< tr >
< td >< input type = "password" id = "resetpass1" value = "" placeholder = "输入您的新密码" ></ td >
</ tr >< br >
< tr >
< td >< input type = "password" id = "resetpass2" value = "" placeholder = "再次输入您的新密码" ></ td >
</ tr >< br >
< tr >
< td >< input type = "reset" value = "清空" ></ td >
< td >< input type = "button" id = "resetbtn" onclick = "resetpass()" value = "提交" ></ td >
</ tr >
</ form >
</ body >
</ html >
< script src = "../static/js/jquery.min.js" ></ script >
< script type = "text/javascript" >
function resetpass(){
var userphone=document.getElementById("userphone").value
var resetpass1=document.getElementById("resetpass1").value
var resetpass2=document.getElementById("resetpass2").value
var submit_flag=1
//判空
if((userphone.length==0)||(resetpass1.length==0)||(resetpass2.length==0)){
submit_flag=0
alert("请把信息填写完整!")
}
//判断密码一致性
if(resetpass2!=resetpass1){
submit_flag=0
alert("两次填写的密码不一致")
document.getElementById("resetpass1").focus();
}
//判断手机号
if(userphone.length!=11){
submit_flag=0
alert("手机号码应为11位!")
document.getElementById("userphone").focus();
}
var regu = /^1[3456789]\d{9}$/
if(!(regu.test(userphone)) ){
submit_flag=0
alert("手机号码格式有误!")
document.getElementById("userphone").focus();
}
//判断密码格式
if(!((resetpass1.length>=6)&&resetpass1.length<=18))
{
submit_flag=0
alert("密码长度应该为6-16位!")
document.getElementById("resetpass1").focus();
}
var regex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z]).{6,18}');
part_pass=resetpass1.split(" ")
if((!(regex.test(resetpass1))) || part_pass.length!=1)
{
submit_flag=0
alert("密码为数字+英文字母 且不可以包含空格!")
document.getElementById("resetpass1").focus();
}
//发起请求
if(submit_flag==1)
{
$.ajax({
url:"/resetpass",
data:{userphone:userphone,resetpass:resetpass2},
success: function (data) {
if (data.data==1)
{
alert("密码修改成功!")
window.open("/",'_self')
}
else
{
alert("修改密码失败!请重试")
}
},
error: function (xhr, type, errorThrown) {
// print("ajax请求失败!")
}
})
}
// alert(submit_flag)
}
</ script >
|
免密登录
html代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<!DOCTYPE html>
< html lang = "en" >
< head >
< meta charset = "UTF-8" >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" >
< meta http-equiv = "X-UA-Compatible" content = "ie=edge" >
< link rel = "stylesheet" href = "../static/css/login.css" rel = "external nofollow" >
< script src = "../static/js/jquery-1.7.2.min.js" ></ script >
< script src = "../static/js/register.js" ></ script >
< title >树懒电影登录</ title >
< script >
</ script >
</ head >
< body >
< div id = "container" >
< div id = "container-child" >
< div id = "img-div" >< img src = "../static/img/shulan.png" ></ div >
< div id = "login-div" >
< div >
< p class = "p-title" >登录您的树懒电影</ p >
< form id = "login-form" method = "post" >
< div class = "input-d" >
< input class = "input-text" type = "text" name = "userphone" id = "userphone" placeholder = "请输入您的账号" >
</ div >
< div class = "input-d" >
< input class = "input-text" type = "password" name = "password" id = "password" placeholder = "请输入您的密码" >
</ div >
< div class = "div-input" >
< div >
< input type = "checkbox" value=“1” class=“remeber” onclick = "onClickHander(this)" >
< label >记住密码</ label >
</ div >
</ div >
< button type = "button" class = "login-button" onclick = "login_()" >登 录</ button >
< div class = "footer" > < a href = "http://127.0.0.1:5000/regis" rel = "external nofollow" >注册</ a > | < a href = "http://127.0.0.1:5000/reset" rel = "external nofollow" >忘记密码</ a ></ div >
</ form >
</ div >
</ div >
</ div >
</ div >
</ body >
</ html >
< script >
var cb=0
function onClickHander(obj) {
if(obj.checked==true){
cb=1
// alert(cb)
}else{
cb=0
// alert(cb)
}
}
function login_(){
var userphone=document.getElementById("userphone").value
var password=document.getElementById("password").value
// alert(cb)
$.ajax({
url: "/web_login",
data: {
userphone:userphone,password:password,cb:cb
},
success: function (data) {
//正常验证失败弹窗
if (data.data == 0)
alert("账号或密码错误!")
//验证成功,返回response
if (data.data != 0)
window.open("http://127.0.0.1:5000/show","_self")
},
error: function (xhr, type, errorThrown) {
print("登录js,验证账号密码ajax请求失败!")
}
})
}
</ script >
|
Python路由
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#免密登录
@app .route( '/web_login/' ,methods = [ 'GET' , 'POST' ])
def web_login():
userphone = request.values.get( 'userphone' )
password = request.values.get( 'password' )
cb = request.values.get( 'cb' )
print ( "是否记住密码: " + cb) #cb的返回值类型是 str 字符串
# print(type(cb))
print ( "登录账号:" + userphone + " " + "密码:" + password)
res = sql.web_login(userphone,password)
if (res = = True ):
session[ 'userphone' ] = userphone
if (cb = = "1" ):
print ( "开始存储cookie登录账号:" + userphone + " " + "密码:" + password)
resp = make_response( '储存cookie' )
resp.set_cookie( 'cookphone' , userphone, max_age = 3600 * 24 * 15 )
resp.set_cookie( 'cookpass' , password, max_age = 3600 * 24 * 15 )
print ( "登录成功且用户选择记住密码,返回response" )
return resp #登录成功且用户选择记住密码,返回response
else :
print ( "登录成功 返回 1 状态码" )
return jsonify({ "data" : 1 }) # 登录成功 返回 1 状态码
else :
print ( "登录失败 返回 0 状态码" )
return jsonify({ "data" : 0 }) #登录失败 返回 0 状态码
|
数据库验证登录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
# 用户(web)登录验证
def web_login(userphone, password):
cursor = None
conn = None
res = []
if (userphone = = None or password = = None ):
return False
conn, cursor = get_conn()
sql = "select userphone,userpass from userdata where '" + userphone + "'=userphone and '" + password + "'=userpass "
res = query(sql)
conn.commit()
if ( len (res) = = 0 ):
print ( "登陆失败(WEB)" )
close_conn(conn, cursor)
return False
else :
close_conn(conn, cursor)
print ( "登陆成功(WEB)" )
return True
|
以上就是flask框架实现修改密码和免密登录功能的详细内容,更多关于flask 修改密码和免密登录的资料请关注服务器之家其它相关文章!
原文链接:https://www.cnblogs.com/rainbow-1/p/14800247.html