프로젝트 공유: 아날로그 블로그 로그인

5652 단어
프로젝트 2: 아날로그 블로그 로그인
설명:
프로젝트 코드는 순전히 본인이 작성한 것으로 표절, 전재 등 어떠한 상황도 없기 때문에 매우 low하게 썼습니다. 여러분만 참고할 수 있고 모르는 것이 있으면 언제든지 댓글을 남깁니다.
프로젝트 요구 사항:
  • 사용자가 선택할 수 있도록 먼저 프로그램이 시작됩니다.
  • 로그인
  • 등록
  • 기사 페이지로 들어가기
  • 리뷰 페이지 들어가기
  • 일기 페이지 들어가기
  • 즐겨찾기 페이지 들어가기
  • 계정 탈퇴
  • 전체 프로그램 종료
  • 필수 기능:
  • 등록 기능 요구 사항:
  • 사용자 이름이 사용자 정보에 있는지 먼저 판단합니다.txt표에 존재하지 않으면 등록할 수 없음
  • 등록된 사용자 이름이 존재하지 않을 때 사용자 이름, 비밀번호를 파일에 기록합니다.
  • 사용자 이름 요구 사항: 특수 문자가 있을 수 없으며 사용자 이름이 고유해야 합니다.
  • 비밀번호 요구: 길이는 6~14글자 사이입니다.

  • 로그인 기능 요구 사항:
  • 사용자가 로그인 확인을 위해 사용자 이름, 비밀번호를 입력합니다.
  • 로그인에 성공하면 3-7 옵션을 액세스할 수 있습니다. 로그인이 없거나 로그인에 실패하면 3-7 옵션을 액세스할 수 없습니다. 액세스를 허용하지 않으면 로그인을 요청합니다!
  • 사용자 이름과 비밀번호가 일치하지 않습니다. 로그인 기회는 세 번뿐입니다. 세 번 후에 사용자 이름이 잠겼다는 알림이 있으면 관리자에게 연락하세요!루프 종료
  • 사용자 이름이 세 번 잘못되면 프로그램을 다시 실행합니다.잠긴 계정에 로그인하여 사용자 이름이 잠겼음을 계속 알립니다. 관리자에게 연락하세요!

  • 기사 페이지 요구 사항:
  • 알림 xx가 글 페이지에 들어오는 것을 환영합니다.(xx는 현재 로그인한 사용자 이름)
  • 설명 페이지에 들어가기 위한 요구 사항:
  • 알림xx가 평론 페이지에 들어오는 것을 환영합니다
  • 일기 페이지에 들어가기 요구 사항:
  • 알림 xx가 일기 페이지에 들어오는 것을 환영합니다.

  • 즐겨찾기 페이지에 들어가기 요구 사항:
  • xx가 즐겨찾기 페이지에 들어오는 것을 환영한다는 힌트를 드립니다.

  • 계정 탈퇴 요구:
  • 전체 프로그램을 종료하는 것이 아니라 로그인한 상태를 로그인하지 않은 상태로 변경합니다(3~7 옵션에 액세스할 때 다시 로그인해야 함).
  • 전체 프로그램 종료 요구 사항:
  • 는 전체 프로그램을 끝내는 것이다


  • 소스:
    def register():
        """
          :      
          :                            ,          
        :return: None
        """
        flag1 = True
        while flag1:
            username = input("     (        ):")
            password = input("     (6~14  ):")
            if not username.isalnum():
                print("          ,     !")
            elif not 6 <= len(password) <= 14:
                print("      ,     !")
            else:
                f1.seek(0)
                for el in f1:
                    if username in el.split(":")[1]:
                        print("      ")
                        break
                else:
                    print("    !")
                    f1.write(f"
    {0}:{username}:{password}") flag1 = False def login(): """ : : :return: str ——> None """ global flag,username,visit count = 3 while count: username = input(" :") password = input(" :") f1.seek(0) for el in f1: num, user, pwd = el.strip().split(":") if num == "1": print(" ! !") return elif username == user: if password == pwd: print(" !") visit = True return else: count -= 1 print(f" , ( :{count})") break else: print(" , !") else: print(" ! !") f1.seek(0) for el in f1: if el.strip().split(":")[1] == username: f2.write(el.replace("0", "1", 1)) else: f2.write(el) flag = True def article(): """ : : :return: None """ print(f" {username} ") def comment(): """ : : :return: None """ print(f" {username} ") def diary(): """ : : :return: None """ print(f" {username} ") def collect(): """ : : :return: None """ print(f" {username} ") def logout(): """ : : False :return: None """ global visit print(" ") visit = False def drop_out(): """ : : exit() :return:None """ print(" !") exit() function = { "1": register, "2": login, "3": article, "4": comment, "5": diary, "6": collect, "7": logout, "8": drop_out, } msg = f"""{' '.center(15, "*")} 1. 2. 3. 4. 5. 6. 7. 8. :""" import os flag = False visit = False # while True: with open("userinfo.txt", "r+", encoding="utf-8") as f1, \ open("userinfo_ .txt", "w", encoding="utf-8") as f2: choose = input(msg) if choose in function: # choose if visit: # , 3~7 if choose in ["1", "2"]: # print(" , !") else: function[choose]() # elif choose in ["1", "2", "8"]: # "1"、"2"、"8" function[choose]() else: print(" ") else: print(" , !") if flag: # os.remove("userinfo.txt") os.rename("userinfo_ .txt", "userinfo.txt") flag = False exit()

    좋은 웹페이지 즐겨찾기