首页 > 其他分享 >登录练习

登录练习

时间:2024-06-06 16:24:10浏览次数:21  
标签:rows 登录 练习 cursor print close conn

登录成功跳出循环,账号密码输入错误后继续登录,输入密码超过3次锁定账户,再次输入正确密码也不能登录成功

 

import sqlite3

unm = 1
while True:
    # 从数据库中查询数据
    def query():
        # 连接到数据库,如果数据库不存在,则会被创建
        conn = sqlite3.connect('example.db')
        # 创建一个cursor对象
        cursor = conn.cursor()
        cursor.execute('''SELECT username,password,locking FROM users''')
        rows = cursor.fetchall()
        for row in rows:
            print(row)
        # 提交事务
        conn.commit()
        # 关闭cursor和连接
        cursor.close()
        conn.close()
        return rows
    
    # 修改数据库中的数据
    def modify():
        conn = sqlite3.connect('example.db')
        cursor = conn.cursor()
        cursor.execute('''UPDATE users SET locking ='1' WHERE ID = 1''')
        conn.commit()
        cursor.close()
        conn.close()
        
    # 登录,判断密码是否错误3次,错误3次后锁定账号
    username = input("请输入用户名:")
    password = input("请输入密码:")
    rows = query()
    if rows[0][0] == username:
        if int(rows[0][2])== 1:
            print("账户已锁定!")
        elif rows[0][1] == password:
            print("登录成功!")
            break
        else:
            print("密码错误!")
            if unm < 3:
                unm = unm+1
            else:
                modify()
    else:
        print("用户名错误!")

 

标签:rows,登录,练习,cursor,print,close,conn
From: https://www.cnblogs.com/GDquicksand/p/18235489

相关文章

  • 【第5章】SpringBoot实战篇之登录模式切换
    文章目录前言一、接口扩展1.LoginStorage2.LocalLoginStorage3.RedisLoginStorage4.参数配置二、登录相关接口改动1.登录接口2.登录拦截器总结前言前面分别介绍了本地Map和redis存储用户登录信息,但是第二天我登录就出现问题了,因为我Redis部署在虚拟机里面,不......
  • 匿名登录详细教程
    创建并使用匿名用户通过MemFireCloud进行身份验证启用匿名登录功能可构建应用程序,为用户提供经过身份验证的体验,而无需用户输入电子邮件地址、密码、使用OAuth提供商或提供任何其他PII(个人身份信息)。稍后,准备就绪后,用户可以将身份验证方法链接到其帐户。匿名用户与......
  • (十六)统计学基础练习题十(选择题T451-478)
    本文整理了统计学基础知识相关的练习题,共50道,适用于想巩固统计学基础或备考的同学。来源:如荷学数据科学题库(技术专项-统计学三)。序号之前的题请看往期文章。451)452)453)454)455)456)457)458)459)460)461)462)463)464)465)466)467)468)469)470)471)472)......
  • 靶机练习:sunset: midnight
    信息收集扫全端口和服务80端口直接访问访问不了:/wp-adminhttp://sunset-midnight看到域名先进行域名绑定,编辑/etc/hostsipsunset-midnight绑定后可正常访问,访问robots.txt文件访问/wp-admin,存在wordpress服务使用wpscan扫描地址[+]WordPressversion5.4.......
  • 网络编程练习题---利用TCP协议完成客户端与服务端点对点通信
    目录题目一解析代码实现题目二:解析代码实现tcp_client.ctcp_server.c题目一设计程序实现解析www.baidu.com的域名,把获取到的百度的IP地址全部输出到终端并验证是否正确。解析主机打算响应某个网站的网络请求,但是只知道网站域名是无法通信的,需要对域名进行地址解析,得到网站的公......
  • C++PrimerPlus第十一章类的使用 :练习7 复数类的实现和重载运算符对复数做运算----本
    复数有两个部分组成:实数部分和虚数部分。复数的一种书写方式是:(3.0,4.0),其中,3.0是实数部分,4.0是虚数部分。假设a=(A,Bi),c=(C,Di),则下面是一些复数运算。加法:a+c=(A+C,(B+D)i)。减法:a-c=(A-C,(B-D)i)。乘法:ac=(AC-BD,(AD+B*C)i)。乘法::xc=(xC,x*Di),其中x为实数。......
  • C++PrimerPlus第十一章类的使用 :练习6 关系运算符的重载
    6.重新编写Stonewt类(程序清单11.16和程序清单11.17),重载全部6个关系运算符。运算符对pounds成员进行比较,并返回一个bool值。   编写一个程序,它声明一个包含6个Stonewt对象的数组,并在数组声明中初始化前3个对象。然后使用循环来读取用于设置剩余3个数   组元素的......
  • C++PrimerPlus第十一章类的使用 :重写练习七,解决重复造轮子的问题
    在第十一章练习七中,为解决重复造轮子的问题。我们先看一下代码的实现#include"pe11_7.h"#include<iostream>usingnamespacestd;Complex::Complex(doublea,doublebi){ this->a=a; this->bi=bi; SetComplex();}voidComplex::SetComplex(void){ this->co......
  • 允许用户通过账号、邮箱或手机号码登录的两种处理办法
    在HTML前端,登录页面通常允许用户通过账号、邮箱或手机号码登录。后端处理这种需求时,1、使用这些正则表达式来检查用户输入:functionidentifyInput(input){constusernameRegex=/[1]{3,}$/;constemailRegex=/[2]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$/;constphoneNumberRege......
  • 每次SSH登录时获取实时系统状态
            今天突发奇想,想要每次ssh登录的时候都可以看到系统的相关信息,接下来就把这个脚本分享给大家吧。当然了我们也可以在评论区讨论一下有哪些可以在改进的。[root@localhost~]#cat/etc/profile.d/system-info.sh#!/bin/bash#编写一个函数用于获取系统......