二手产品经理

二手产品经理

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)


加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。