python 用户登录界面及code

1.输入用户名密码
2.认证成功后显示欢迎信息
3.输错三次后锁定
# -*- coding: utf-8 -*-
# -*- coding: cp936 -*-

import getpass
import Tkinter as tk
import time
import datetime
import tkMessageBox


"""
1.输入用户名密码
2.认证成功后显示欢迎信息
3.输错三次后锁定

"""

count = 0

def tick():
    global time1
    # 从运行程序的计算机上面获取当前的系统时间
    time2 = time.strftime('%Y-%m-%d %H:%M:%S')
    # 如果时间发生变化,代码自动更新显示的系统时间
    if time2 != time1:
        time1 = time2
        clock.config(text=time2)
        # calls itself every 200 milliseconds
        # to update the time display as needed
        # could use >200 ms, but display gets jerky
    clock.after(200, tick)
    
def handler():
    
    '''事件处理函数'''
    global count
    global t1, t2
    username = entry.get()
    password = entry2.get()
  
    if count > 3:
        t2 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
        t2= datetime.datetime.strptime(t2,'%Y-%m-%d %H:%M:%S')
        dateline = datetime.timedelta( seconds=12,  minutes=0, hours=0)
        if (dateline - (t2 - t1)).days == 0:
            print (u'密码输入错误超过3次,该账号已被锁定,请'),
            print dateline - (t2 - t1),
            print (u'小时之后再试' )
            var = '密码输入错误超过3次,该账号已被锁定,请' + str(dateline - (t2 - t1))  + '小时之后再试'
            tkMessageBox.showwarning('警告', var )
        if (dateline - (t2 - t1)).days < 0:
            count  = 0
            print (u'账号锁定已解除,请输入正确的账号密码!')
            tkMessageBox.showwarning('警告','账号锁定已解除,请输入正确的账号密码!')
            
    else:
        if username == '' and password == '':
            tkMessageBox.showinfo('警告','账号和密码不能为空')
        elif username == '' and password != '':
            tkMessageBox.showinfo('警告','账号不能为空')
        elif username != '' and password == '':
            tkMessageBox.showinfo('警告','密码不能为空')   
        else:       
            if  username == 'Navy' and password == '9527':
                print(u'欢迎 Navy')
                window.destroy()
                tkMessageBox.showinfo('主页面','欢迎 Navy')

            else:
                
                count += 1
                
                if count == 1:
                    print(u'密码输入错误,请重新输入!')
                    print('再输错%d次该账号将被锁定' % (3-count))
                    tkMessageBox.showwarning('警告','密码输入错误,请重新输入!再输错2次该账号将被锁定!')

                if count == 2:
                    print(u'密码输入错误,请重新输入!')
                    print('再输错%d次该账号将被锁定' % (3-count))
                    tkMessageBox.showwarning('警告','密码输入错误,请重新输入!再输错1次该账号将被锁定!')
                    
                if count == 3:
                    t1 = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
                    t1= datetime.datetime.strptime(t1,'%Y-%m-%d %H:%M:%S')
                    print(u'密码输入错误超过3次,该账号已被锁定,请24小时之后再试')
                    tkMessageBox.showwarning('警告','密码输入错误超过3次,该账号已被锁定,请24小时之后再试')
                    count = count + 1
              
if __name__=='__main__':
    
    window = tk.Tk()
    window.title('个人网上银行登录')#标题
    window.geometry('320x200')#窗体大小
    window.resizable(False, False)#固定窗体

    frame1 = tk.Frame(window)
    frame2 = tk.Frame(window)
    frame3 = tk.Frame(window)

    userNameLabel = tk.Label(frame1,text="账号:",fg = 'green')
    userNameLabel.pack(side = tk.LEFT)
    
    passWordLabel = tk.Label(frame2,text="密码:",fg='green')
    passWordLabel.pack(side = tk.LEFT)
    
    entry = tk.Entry(frame1)
    entry.pack(side=tk.RIGHT)    
    
    entry2 = tk.Entry(frame2,show = '*')
    entry2.pack(side=tk.RIGHT)  
    
    # 通过中介函数handlerAdapotor进行command设置
    btn = tk.Button(frame3,text = u'安全登录', command = handler,fg = 'blue')
    btn.pack(side=tk.BOTTOM)

    
    time1 = ''
    clock = tk.Label(window,font=('times', 10, 'bold'),fg = 'blue')
    clock.pack(side=tk.BOTTOM) 
    tick()
    
    frame1.pack(fill = tk.Y, expand = tk.YES)
    frame2.pack(fill = tk.Y, expand = tk.NO)
    frame3.pack(fill = tk.NONE, expand = tk.YES)
    window.mainloop()
code 下载,请点击UI登录界面  在该链接下载!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值