2017-09-08 40 views
0

J'essaie de créer un script Python où les utilisateurs peuvent créer un compte et se connecter. Je dois enregistrer les détails de leur compte (Nom, DoB, etc.) afin qu'ils puissent fermer le programme et le journal à nouveau la prochaine fois.Nom d'utilisateur et mot de passe en Python 3.6

#username:Password 
account = {"Admin":["Pog"],"Hughes":["Hughes"], "E": ["Echo"], "C": ["Charlie"], "B": ["Bravo"], "D": ["Delta"], "A": ["Alpha"]} 

#Check Credentials 
name=input("Username: ")     #Ask for name 
if name in account:       #Check name exists 
    print (account[name][0])    #Error test - print expected password 
    if passw==account[name][0]:    #Check for password match 
     print("welcome,", name)    #Welcome message 
else: 
    print ("Failed Authentication")  #Wrong Password 
else: 
    print("Username Not Known")    #Unknown Username 

Le code ci-dessus fonctionne, je peux authentifier les utilisateurs, mais comment puis-je ajouter de nouveaux utilisateurs/mots de passe afin qu'ils seront ajoutés au programme?

J'ai expérimenté avec l'écriture/la lecture de/vers des fichiers txt mais sans succès. Est-ce la bonne approche?

Toute aide serait grandement appréciée!

Merci

(j'ai essayé de chercher mais ne peut pas trouver ce que je cherche. How to create a python dictionary that will store the username and password for multiple accounts était proche)

+0

pls fixer votre indentation de code. La bonne approche serait une base de données, vous pouvez démarrer sqlite ou MySql, mais pas les fichiers texte. – jps

+1

Indentation fixe – MrPogson

Répondre

0

Eh oui, vous devrez soit utiliser un fichier externe en tant que stockage constant ou bien utiliser une base de données de quelque sorte pour stocker ces données. Sinon, lorsque vous redémarrez le script, il va tout laisser tomber des thats actuellement en mémoire (stocké lors de la dernière exécution du script)

0

Je résolu mon problème à l'aide Pickle:

...

account = pickle.load(open("accounts.pkl","rb")) #Load Accounts file 
#Check Credentials 
name=input("Username: ")     #Ask for name 
if name in account:       #Check name exists 
    print (account[name][0])    #Error test - print expected password 
    passw=input("Password: ")    #Ask for Password 
    if passw==account[name][0]:    #Check for password match 
     print("welcome,", name)    #Welcome message 
     print("your Favourite Artist is: ",account[name][2]) 
     menu(name,account) 
    else: 
     print ("Failed Authentication")  #Wrong Password 
     users() 
else: 
    print("Username Not Known")    #Unknown Username 
    new_user(account) 

Où les détails du compte sont stockés comme ceci:

{'Name': ['Password', 'Detail_1', 'Detail_2', 'Detail_3'],'Name2': ['Password', 'Detail_12', 'Detail_22', 'Detail_32']}