思路总结:

html代码:

 1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta http-equiv="X-UA-Compatible" content="ie=edge">
7 <link rel="stylesheet" href="../static/css/login.css">
8 <script src="../static/js/jquery-1.7.2.min.js"></script>
9 <script src="../static/js/register.js"></script>
10 <title>树懒电影登录</title>
11 <script >
12 </script>
13 </head>
14 <body>
15 <div id="container">
16 <div id="container-child">
17 <div id="img-div"><img src="../static/img/shulan.png"></div>
18 <div id="login-div">
19 <div>
20 <p class="p-title">登录您的树懒电影</p>
21 <form id="login-form" method="post">
22 <div class="input-d">
23 <input class="input-text" type="text" name="userphone" id="userphone" placeholder="请输入您的账号">
24 </div>
25 <div class="input-d">
26 <input class="input-text" type="password" name="password" id="password" placeholder="请输入您的密码">
27 </div>
28 <div class="div-input">
29 <div>
30 <input type="checkbox" value=“1” class=“remeber” onclick="onClickHander(this)">
31 <label>记住密码</label>
32 </div>
33 </div>
34 <button type="button" class="login-button" onclick="login_()">登&emsp;录</button>
35 <div class="footer"> <a href="http://127.0.0.1:5000/regis">注册</a> | <a href="http://127.0.0.1:5000/reset">忘记密码</a></div>
36 </form>
37 </div>
38 </div>
39 </div>
40 </div>
41 </body>
42 </html>
43 <script>
44 var cb=0
45 function onClickHander(obj) {
46 if(obj.checked==true){
47 cb=1
48 // alert(cb)
49 }else{
50 cb=0
51 // alert(cb)
52 }
53 }
54 function login_(){
55 var userphone=document.getElementById("userphone").value
56 var password=document.getElementById("password").value
57 // alert(cb)
58 $.ajax({
59 url: "/web_login",
60 data: {
61 userphone:userphone,password:password,cb:cb
62 },
63 success: function (data) {
64 //正常验证失败弹窗
65 if (data.data == 0)
66 alert("账号或密码错误!")
67 //验证成功,返回response
68 if (data.data != 0)
69 window.open("http://127.0.0.1:5000/show","_self")
70 },
71 error: function (xhr, type, errorThrown) {
72 print("登录js,验证账号密码ajax请求失败!")
73 }
74 })
75 }
76 </script>

Python路由

 1 #免密登录
2 @app.route('/web_login/',methods=['GET', 'POST'])
3 def web_login():
4 userphone = request.values.get('userphone')
5 password=request.values.get('password')
6 cb=request.values.get('cb')
7 print("是否记住密码: "+cb) #cb的返回值类型是 str 字符串
8 # print(type(cb))
9 print("登录账号:"+userphone+" "+"密码:"+password)
10 res=sql.web_login(userphone,password)
11 if(res==True):
12 session['userphone'] = userphone
13 if(cb=="1"):
14 print("开始存储cookie登录账号:" + userphone + " " + "密码:" + password)
15 resp = make_response('储存cookie')
16 resp.set_cookie('cookphone', userphone, max_age=3600 * 24 * 15)
17 resp.set_cookie('cookpass', password, max_age=3600 * 24 * 15)
18 print("登录成功且用户选择记住密码,返回response")
19 return resp #登录成功且用户选择记住密码,返回response
20 else:
21 print("登录成功 返回 1 状态码")
22 return jsonify({"data": 1}) # 登录成功 返回 1 状态码
23 else:
24 print("登录失败 返回 0 状态码")
25 return jsonify({"data":0}) #登录失败 返回 0 状态码

数据库验证登录

 1 # 用户(web)登录验证
2 def web_login(userphone, password):
3 cursor = None
4 conn = None
5 res=[]
6 if(userphone==None or password==None):
7 return False
8 conn, cursor = get_conn()
9 sql = "select userphone,userpass from userdata where '"+userphone+"'=userphone and '"+password+"'=userpass "
10 res=query(sql)
11 conn.commit()
12 if(len(res)==0):
13 print("登陆失败(WEB)")
14 close_conn(conn, cursor)
15 return False
16 else:
17 close_conn(conn, cursor)
18 print("登陆成功(WEB)")
19 return True

Python---flask框架实现免密登录功能的更多相关文章

  1. Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块

    这是一篇系列博文,我将使用Abp.Zero搭建一套集成手机号免密登录验证与号码绑定功能的用户系统: Abp.Zero 手机号免密登录验证与号码绑定功能的实现(一):验证码模块 Abp.Zero 手机号 ...

  2. Shell脚本实现SSH免密登录及批量配置管理

    本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...

  3. Hadoop起步之图解SSH、免密登录原理和实现

    1. 前言 emmm….最近学习大数据,需要搭建Hadoop框架,当弄好linux系统之后,第一件事就是SSH免密登录的设置.对于SSH,我觉得使用过linux系统的程序员应该并不陌生.可是吧,用起来 ...

  4. selenium操作cookies实现免密登录,自动发微博

    一直想用selenium实现个小功能,比如发微博之类的,但是有的网站在登录会有验证码,没想到太好的方法解决,于是想到利用cookies来登录网站 第一步:获取一个可用的cookies,获取的cooki ...

  5. 批量实现ssh免密登录

    本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...

  6. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (II)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架 II第二部 0. 本系列教程 1. 登录功能准备 a.python中操控mysql b. 安装数据库 c.安装mys ...

  7. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...

  8. linux(十)配置ssh免密登录实现

    知道ssh的朋友应该知道它是用来干什么的,如果你不知道什么是ssh远程登录的话,可以去看一下我的上一篇博客,关于linux的网络基础的知识.备注:ssh是用于远端登入.执行ssh指令开启终端机阶段作业 ...

  9. Ubuntu 开启SSH服务以及有关设置:安装,指定端口号、免密登录、远程拷贝

    本文所用系统为 Ubuntu 18.04   什么是SSH?     简单说,SSH是一种网络协议,用于计算机之间的加密登录.全名为:安全外壳协议.为Secure Shell的缩写.SSH为建立在应用 ...

  10. Linux入门——SSH免密登录

    SSH免密登录 1.简介 SSH是一种网络协议,用于计算机之间的加密登录. 本文针对的实现是OpenSSH,它是自由软件,应用非常广泛. 2.初始化公钥私钥 有rsa,dsa两种加密方式,生成的公钥私 ...

随机推荐

  1. Servlet实现导出下载csv文件

    工作上遇到的场景,需要将客户列表数据导出成csv文件.测试了一个最简单版本,记录一下. 订单实体类: package entity; /** * 订单信息实体 * Created by dylan-p ...

  2. 编译安装c2工具sliver以及python 客户端sdk

    背景: 项目需要安装sliver服务端和客户端还有sliver的python sdk: git clone https://github.com/BishopFox/sliver.git cd sli ...

  3. win32 - 控制台聊天

    仅适用于同一台电脑的两个进程聊天,对于不同电脑之前的聊天需要依靠tcp/ip协议. 两个进程是通过发送WM_COPYDATA 消息来传输字节的. 代码如下: Server.cpp #include & ...

  4. Maven应用常见问题

    在Spring Boot项目中打包指定类为启动类 <build> <plugins> <plugin> <groupId>org.springframe ...

  5. django学习第一天---MVC和MTV框架,request对象的属性,url路由系统

    jinja2模板渲染简单使用 下载安装 pip install jinja2 使用示例 html文件中写法 <!DOCTYPE html> <html lang="zh-C ...

  6. Redis缓存应用场景

    记录一下自己的听课笔记,看的网课. 参考资料:https://zhuanlan.zhihu.com/p/157717158 常见应用场景 1 数据缓存 缓存一些常用的.经常访问的.不经常变化的数据,也 ...

  7. ThreadPoolExecutor和Executors的区别

    Executors创建的线程有两类 newFixedThreadPool和newSingleThreadExecutor,队列数量弹性,创建的线程的队列最大值为INTEGER.max容易造成OOM n ...

  8. Finder Error code -36 “访达” 错误代码-36

    导致这个问题的原因是你的iCloud (iCloud和iCloud Drive是不一样的) 快满了. 如果你想解决这个问题,有以下三个方法: 1.多买苹果iCloud.(是的,苹果现在太恶心了.但这是 ...

  9. 【Azure 应用服务】在App Service 中如何通过Managed Identity获取访问Azure资源的Token呢? 如Key Vault

    问题描述 当App Service启用了Managed Identity后,Azure中的资源就可以使用此Identity访问. 如果需要显示的获取这个Token,如何实现呢? 问题解答 在App S ...

  10. 【Azure Developer】使用Azure Resource Graph的查询语法的示例

    文章"[Azure Developer]在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等) ...