欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python实现简单的登陆接口

程序员文章站 2022-04-18 15:52:40
...

要求:

1.输入用户名密码

2.认证成功后显示欢迎信息

3.输错三次后锁定

实现的代码如下:

#  -*- coding: utf-8 -*-
"""
@Author:yhf1995
@time:2020/1/28 9:41
"""
from openpyxl import load_workbook
# 从openpyxl 导入 load_workbook

user_excel = load_workbook(r"user_password.xlsx")
# 导入整个excel工作簿,excel表格分为工作簿、sheet表单和单元格
user_list = user_excel.get_sheet_by_name('Sheet1')
# 导入user_password.xlsx表格中的第一个表单sheet1的数据,存放到user_excel
# 该表格有三列,第一列是用户名,第二列是密码,第三列是登录错误次数,其初始值为0
user_number = user_list.max_row
# 调用user_list.max_row方法获得表的最大行数,max_column为获取最大列数
#print(user_list.cell(row=6,column=3).value)
# 测试,打印第6行第3列的值
#print(user_list.cell(row=2,column=1).value)
#同上

count = 0
# 作为用户登录成功的标志位,登录成功后count值变为1,结束登录循环
while count != 1:
    username = input("username=")
    password = input("password=")
    # 输入用户名和密码
    for i in range(user_number):
        if username == user_list.cell(row=i+2,column=1).value and user_list.cell(row=i+2,column=3).value == 3:
            print("the user %s is locked" % (username))
            break
            # 本段是判断该用户是否登录错误超过3次,被lock了
        elif username == user_list.cell(row=i+2,column=1).value and password == user_list.cell(row=i+2,column=2).value:
            print("Welcome user %s login..." %(username))
            count = 1
            break
            # 判断登录成功,打印出“Welcome user XXX login...”
    else:
        print("Invalib name or password")
        for j in range(user_number):
            if username == user_list.cell(row=j + 2, column=1).value:
                user_list.cell(row=j + 2,column=3).value += 1
                user_excel.save('user_password.xlsx')
                break
                # 登录错误,登录错误的用户次数加1

说明: Python的版本是3.6,运行前需在该.py文件夹里新建一个名为user_password.xlsx的表格,该表格有三列,第一列是用户名,第二列是该行用户的登陆密码,第三列是登录错误次数的记录,第三列的初始值为0。

在用户名或密码错误的情况下,和该用户被锁定的情况下,可以无限次数进行用户登录,在登录成功的情况下,只打印欢迎语句,结束该程序的运行。

注题目来自:老男孩教育Python课程

 

相关标签: 用户登陆实现