gpt4 book ai didi

flask框架实现修改密码和免密登录功能

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章flask框架实现修改密码和免密登录功能由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

修改密码功能

数据库部分:

?
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 。

最后此篇关于flask框架实现修改密码和免密登录功能的文章就讲到这里了,如果你想了解更多关于flask框架实现修改密码和免密登录功能的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com