二手产品经理

二手产品经理

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">Sign Up</a></p>
  <p><a href="/log">Log In</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"Hello {user['name']}"
    else:
        page = f"{user['username']} exists"
    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"Hello {db[user['name']]}"
    else:
        page = "Username Or Password error"
    return page


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

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