2014-02-28 1 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") 

어떻게 파이썬이 사용자 이름과 암호를 읽을 수있는 데이터베이스를 만드나요? 또한, 파이썬이 데이터베이스에 부록을 추가하여 사용자 이름과 암호를 추가 할 수 있도록 만드는 방법은 무엇입니까?

이 10.8

가 사전에 감사 파이썬 V3.3.0 맥 OSX입니다!

+2

발생하는 문제점은 무엇입니까? – Bazinga

+0

어떻게 파이썬이 사용자 이름과 암호를 읽을 수있는 데이터베이스를 만드나요? 또한, 파이썬이 데이터베이스에 부록을 추가하여 사용자 이름과 암호를 추가 할 수 있도록 만드는 방법은 무엇입니까? –

+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가 발생 함) 사용자가 Guest로 계속 진행할지 또는 자격 증명을 만들지 묻습니다. 그것이 생성 되었다면,'input()'을 사용하여 사용자 이름을 얻고,'getpass.getpass()'를 사용하여 패스워드를 얻으십시오. 그런 다음 첫 번째 섹션에 표시된대로'pickle.dump()'를 사용하여 정보를 덤프 할 수 있습니다. 그래서 기본적으로 네, 같은 파일을 사용합니다. 이 작업이 어떻게 수행되는지 예제를 원하면 내 프로필의 전자 메일로 나에게 전자 메일을 보내면 코드를 보내드립니다! 행운을 빕니다! –

+0

피클은 좋지 않지만 SQLite가 목표에 더 적합 할 수 있습니다. –