思路总结:

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. Innodb之事务

    目录 一.事务基本概念 事务的特性:ACID 事务类型 1.扁平事务 2.带保存点的扁平事务 3.链式事务 4.嵌套事务 5.分布式事务 二.事务的实现概述 三.redo log 1)组成 2)red ...

  2. 案例分享:Qt激光加工焊接设备信息化软件研发(西门子PLC,mysql数据库,用户权限控制,界面设计,参数定制,播放器,二维图,rgv小车,期限控制,参数调试等)

    需求   1.键鼠控制,承担ui界面设计,布局兼容分辨率1024x768 ~ 1920x1080.  2.权限控制:三种权限,分为管理员(可以定制模块界面,修改产品名称等定制化软件和其他权限,同时具备 ...

  3. 【LeetCode回溯算法#09】全排列,排列问题以及其中涉及的去重操作

    全排列 力扣题目链接 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 .你可以 按任意顺序 返回答案. 示例 1: 输入:nums = [1,2,3] 输出:[[1,2,3],[1, ...

  4. 【LeetCode链表#10】删除链表中倒数第n个节点(双指针)

    删除链表倒数第N个节点 力扣题目链接(opens new window) 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点. 进阶:你能尝试使用一趟扫描实现吗? 示例 1: 输入:he ...

  5. 关于Python中math 和 decimal 模块的解析与实践

    本文分享自华为云社区<Python数学模块深度解析与实战应用>,作者: 柠檬味拥抱. 在Python中,math 和 decimal 模块是处理数学运算的重要工具.math 提供了一系列常 ...

  6. 【Azure Function App】在ADF(Azure Data Factory)中调用 Azure Function 时候遇见 Failed to get MI access token

    问题描述 在ADF(Azure Data Factory)中,调用Azure Function App中的Function,遇见了 Failed to get MI access token Ther ...

  7. Mapbox实战项目(1)-栅格图片图层实现地图方位展示

    需求背景 需要实现地图上展示一个类似于罗盘的标记,随着地图的缩放.切换.旋转等,能够在地图的中央指示出地图的方位. 系统自带的方位控件太小,在特殊业务场景下不够醒目. 技术选型 Mapbox 实现分析 ...

  8. sed 资源

    sed教程 菜鸟教程正则 MDN正则 正则测试工具 文本替换 s sed有多种分割符,比如你要替换路径字符串时,使用反斜杠很难看,则可以用 : 或者 _ 或者 | 这三个符号都可作为分隔符. & ...

  9. Zabbix“专家坐诊”第182期问答汇总

    问题一: Q:像烽火.浪潮这种没有ilo的设备怎么监控他们的硬件状态呢? A:如果没有ilo,可以使用其他硬件监控软件,例如HP Insight Manager.IBM Director.Dell O ...

  10. day02-Spring基本介绍02

    Spring基本介绍02 5.简单模拟Spring基于XML配置的程序 5.1需求说明 自己写一个简单的Spring容器,通过读取beans.xml,获取第一个Javabean:Monster的对象, ...