二手产品经理

二手产品经理

THIS IS RENO

db - 72天 - 在線學python100天

記錄#

  1. 修改第 62 天的程式碼,為它建立帳號密碼。
  2. 在程式碼首次執行時,如果沒有帳號密碼,則建立帳號和密碼。帳號密碼存儲在 replit db 中。
  3. 再次執行時必須帳號密碼正確才能訪問。
  4. 編寫的過程中對 db 的概念還是有些不清晰,在處理 key 和 value 時出現一些問題。
  5. 對於 for 循環的理解有些困難,不能很快速地理解循環過程和結果。

CODE#

from replit import db
import os, datetime, random, time

correctPassword = "1"


def add(t):
  db[timestamp] = t


def view():
  show = "n"
  for key in dblist:
    if show.lower() == "n" and key != "userinfo":
      print(f"{key}: {db[key]}")
      print("---")
    elif show.lower() == "e":
      break
    show = input("Next or Exit? > ")


while True:
  dblist = db.keys()
  if "userinfo" not in dblist:
    print("Set !")
    username = input("Username > ")
    password = input("password > ")
    salt = random.randint(1000, 9999)
    newpass = hash(f"{password}{salt}")
    db["userinfo"] = {"username": username, "password": newpass, "salt": salt}
  else:
    print("Input !")
    userinfo = db["userinfo"]
    username = input("Username > ")
    password = input("password > ")
    salt = userinfo["salt"]
    newpass = hash(f"{password}{salt}")
    if username == userinfo["username"] and userinfo["password"] == newpass:
      while True:
        os.system("clear")
        menu = input("Welcome\n1: Add\n2: View\n")
        if menu == "1":
          timestamp = datetime.datetime.now()
          print(timestamp)
          add(input("> "))
        elif menu == "2":
          view()
    else:
      print("username or password error!")
    time.sleep(3)


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。