如何python建立一个保存本地的简单数据库,支持登录查询密码修改?

准备工作:
1)D盘新建L文件夹
2)L文件夹中保存 accounts.txt文件存储账户和密码(如:zhangsan 888888),uerlog.txt文件存储登录log

class DBMnagement:
‘数据库管理类’

def __init__(self, nm, pwd):
    self.name = nm
    self.password = pwd

def updatePWD(self, newpwd):
    self.password = newpwd

def __del__(self):
    pass

import os

import time

def CreateLog(username):
‘登陆成功写时间戳到log文件’
timeStamp = time.ctime(time.time())
log = ‘User’ + ’ - ’ + username + ', last time login Succeed at ’ + timeStamp + ‘\n’
logFile = open(‘D:\L\userlog.txt’, ‘a’)
logFile.write(log)
logFile.close()

def ReadLog():
‘登陆成功,从log文件读取上次时间戳’
logFile = open(‘D:\L\userlog.txt’)
logInfo = logFile.readlines()
if len(logInfo) >= 1:
print(logInfo[-1])
logFile.close()

def ChangePWDinLog(username, newpwd):
‘修改用户密码’
testFile = open(‘D:\L\accounts.txt’, ‘w’)
testtxt = username + ’ ’ + newpwd
testFile.write(testtxt)
testFile.close()
print(‘密码已修改 … Password updated successfully. \n’)

从这里开始是主程序

print(‘欢迎使用最简单的用户管理系统’)
print(‘尝试用系统中已经存在的用户名和密码登录,有三次机会’)
print(‘登陆成功后输入 updatepwd 命令可以修改密码,成功后退出系统’)
print(‘登陆成功后输入 quit 命令退出系统\n’)

testFile = open(‘D:\L\accounts.txt’) # 从文本文件中获取用户名和密码
testInfo = testFile.readlines()
testFile.close()

usernameinDB = testInfo[-1].split()[0] # 这里testInfo[-1]是一个字符串,包括用户名和口令,空格隔开的
passwordindm = testInfo[-1].split()[1]

errorTimes = 3
while errorTimes:
print('请输入用户名和密码: ')
input_username = input(‘Username … : ‘)
input_password = input(‘Password … : ‘)
if input_username == usernameinDB and input_password == passwordindm:
print(‘登陆成功 … Login Successful’)
CurrentUser = DBMnagement(input_username, input_password)
ReadLog()
CreateLog(input_username)
input_command = input(‘请输入你的命令, quit or updatepwd … \n’)
if input_command == ‘quit’:
del CurrentUser
print(’\n已退出系统 … Logout successfully.’)
break
elif input_command == ‘updatepwd’:
newpwd = input(‘请输入新密码, new password … : ‘)
CurrentUser.updatePWD(newpwd)
ChangePWDinLog(CurrentUser.name, CurrentUser.password)
del CurrentUser
print(’\n已退出系统 … Logout successfully.’)
break
else:
print(‘错误命令 … Wrong Command’)
del CurrentUser
print(’\n已退出系统 … Logout successfully.’)
break
else:
print(‘用户名或口令错误 … Wrong Username or Password.’)
errorTimes -= 1
if errorTimes == 0:
print(‘已退出系统 … Logout successfully.’)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值