我正在做类的简单数据库,我有密码功能的问题。我无法弄清楚为什么它每次都要求设置密码。我认为问题在于阅读是否已经在基础之内,但我不知道如何解决。Python,数据库密码
import shelve
global base,pas
global magazine_base
def load_data():
global base
global magazine_base
magazine_base = shelve.open('magazine_base')
if magazine_base.has_key('base'):
base = magazine_base['base']
if not base:
base = []
else:
base = []
magazine_base['base'] = base
def enterpass():
global base,pas
epas=raw_input("Enter password to acces database")
for entry in base:
while True:
if epas == entry['pas']:
break
else:
print "Password incorrect"
def password():
global base,pas
global magazine_base
load_data()
is_firstopen = True
if 'pas' in base:
is_firstopen = False
enterpass()
if is_firstopen:
while True:
pas=raw_input("This is the first start of database.\nPlease enter the password, min. 5 characters: ")
if len(pas)>5:
break
base += [{'pas':pas}]
magazine_base['base'] = base
magazine_base.close()
print "Password set"
else:
print "Password too short"
我把它简化为: 如果“PAS”在基地: enterpass( ) 否则: 打印 “这是数据库的第一起始\ n请输入密码,分5个字符:” 而真: PAS =的raw_input() 如果len(PAS)> 5: 破 基地+ = [{ 'PAS':PAS}] magazine_base [ '基础'] =碱 magazine_base.close() 打印 “密码设定” 否则: 打印 “密码太短,请再输入一次” 但仍然相同,可能通过不读取或保存不正确 – sh4rkyy