2014-02-28 167 views
0

我正在嘗試製作一個工作用戶註冊程序。當詢問用戶名時,系統會查看輸入的文本是否已經存儲。如果用戶名已經存儲,它將要求該用戶的密碼。但是,如果用戶名未被存儲,它將要求輸入密碼。輸入這些內容後,該腳本將附錄到.py文件的.txt文件中以創建新帳戶。帳戶建立後,腳本可以讀取.txt或.py文件以獲取登錄信息。我當前的登錄代碼:Python用戶註冊

loop = "true" 
while(loop == "true"): 
    username = input("Enter Username: ") 
    password = input("Enter Password: ") 
    h = input ("Do You Need Help [Y/N]: ") 
    if(h == "Y" or h == "y" or h == "yes" or h == "Yes"): 
    print ("Enter username and password to login. If you do not have an account yet, enter 'Guest' as the username and press enter when it asks for the password.") 
    elif(h == "N" or h == "n" or h == "no" or h == "No"): 
     print (" >> ") 
    if(username == "Hello World" and password == "Hello World" or username == "Test User" and password == "Test User" or username == "Guest"): 
     print ("Logged in Successfully as " + username) 
     if(username == "Guest"): 
      print ("Account Status: Online | Guest User") 
     if not (username == "Guest"): 
      print ("Account Status: Online | Standard User") 

如何製作一個數據庫,python可以讀取用戶名和密碼?另外,你如何做到這一點,使Python可以附加到數據庫添加更多的用戶名和密碼?

這是Python v3.3.0 Mac OSX 10.8

預先感謝您!

+2

您遇到的問題是什麼? – Bazinga

+0

如何製作一個python可以讀取用戶名和密碼的數據庫?另外,你如何做到這一點,使Python可以附加到數據庫添加更多的用戶名和密碼? –

+0

例如'import sqlite3'和[SQLite Python教程](http://zetcode.com/db/sqlitepythontutorial/) – furas

回答

1

嘗試使用pickle模塊:

>>> import pickle 
>>> myusername = "Hello" 
>>> mypassword = "World" 
>>> login = [myusername, mypassword] 
>>> pickle.dump(login, open("%s.p" % login[0], "wb")) #Saves credentials in Hello.p, because Hello is the username 
>>> #Exit 

現在把它找回來

>>> import pickle 
>>> try: 
... password = pickle.load(open("Hello.p", "rb"))[1] 
... username = pickle.load(open("Hello.p", "rb"))[0] 
... except IndexError: #Sees if the password is not there 
... print("There is no information for those credentials") 
... 
>>> password 
'mypassword' 
>>> username 
'myusername' 

如果沒有密碼或用戶名,它打印There is no information for those credentials ...希望這有助於!

而只是提示:不打擾通過if(h == 'n'...,只是做一個h.lower().startswith("n") == True.lower()使所有內容都爲小寫,str.startswith("n")檢查str是否以字母n開始。

+0

我是否爲第一部分和第二部分創建了不同的.py文檔?謝謝 –

+0

基本上你可以做的是詢問用戶的用戶名和密碼,如果用戶名和密碼不存在(引發IndexError),詢問用戶是否想繼續作爲訪客或想要創建憑證。如果是create,使用'input()'獲取用戶名,並且找到更多關於'getpass.getpass()'來獲取密碼的信息。然後,您可以使用'pickle.dump()',如第一部分所示,轉儲信息。所以基本上,是的,你使用相同的文件。如果您想要舉例說明如何完成此操作,請通過我的個人資料上的電子郵件向我發送電子郵件,然後我會向您發送代碼!祝你好運! –

+0

不是泡菜不好,但SQLite可能更適合您的目標。 –