二手产品经理

二手产品经理

THIS IS RENO

db - 84天 - 在線學python100天

記錄#

  1. 今天學習將之前的知識點串聯起來了,首先是 db 操作,然後是最近的 request 操作。這其中還涉及字典數組等操作。
  2. 在 replit 中,db 中的內容需要先存進去,也就是 db []= 字符串,然後才能讀取,有點不方便的是這個存入的代碼在後續的運行中需要被註釋。
  3. static_url_path='/static' 還是有一點不明白,AI 這麼講:static_url_path 主要是為了更好地組織 URL 結構,使代碼更具可讀性和可維護性,不設置這個參數也是可以的。
  4. 學習如何修改密碼,在視頻的開始部分並沒有修改指定用戶的密碼。當庫裡只有一個的時候沒問題,但是如果有多個,那就錯了。寫代碼的時候也要盡量避免這種問題,當然還是要多用戶的。
  5. 在排查錯誤的練習中,發現了代碼中一個 bug,可以改其他用戶的密碼,哈哈哈!

CODE#

from flask import Flask, request, redirect
from replit import db

app = Flask(__name__, static_url_path='/static')


@app.route("/")
def index():
    page = """
  <p><a href="/sign">註冊</a></p>
  <p><a href="/log">登錄</a></p>
  """
    return page


@app.route("/sign")
def sign():
    f = open("sign.html", "r")
    page = f.read()
    f.close
    return page


@app.route("/signup", methods=["POST"])
def signup():
    user = request.form
    if user["username"] not in db.keys():
        db[user["username"]] = {
            "username": user["username"],
            "name": user["name"],
            "password": user["password"]
        }
        page = f"你好 {user['name']}"
    else:
        page = f"{user['username']} 已存在"
    return page


@app.route("/log")
def log():
    f = open("login.html", "r")
    page = f.read()
    f.close
    return page


@app.route("/login", methods=["POST"])
def login():
    user = request.form
    print(f"""
    {db[user["username"]]["username"]} == {user["username"]} and {db[
            user["username"]]["password"]} == {user["password"]}:
    """)
    if db[user["username"]]["username"] == user["username"] and db[
            user["username"]]["password"] == user["password"]:
        page = f"你好 {db[user['name']]}"
    else:
        page = "用戶名或密碼錯誤"
    return page


app.run(host='0.0.0.0', port=81)

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