NameError:未定义名称'books'

问题描述 投票:0回答:1

这种错误提示您定义名称。但是我想我已经尽力了

from sqlalchemy import create_engine
import os


from flask import Flask, session, render_template, request
from flask_session import Session
from sqlalchemy.orm import scoped_session, sessionmaker

app = Flask(__name__)

 # Check for environment variable
if not os.getenv("DATABASE_URL"):
    raise RuntimeError("DATABASE_URL is not set")

# Configure session to use filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
Session(app)

# Set up database
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))



@app.route("/")
def index():
    return render_template("index.html")

@app.route("/registration")
def registration():
    books =  db.execute("SELECT * FROM books").fetchall()
for books in books :
    print(f"{books}")


if __name__ ==  "__main__":
    main()

ss

flask flask-sqlalchemy
1个回答
0
投票

要调试名称错误,您希望找出在代码中使用变量时未定义的位置。您忘记了缩进以下代码,因此它们不属于def registration()。因此,此代码从一开始就运行,但是未定义书籍。

for books in books :
    print(f"{books}")

另一个错误在for循环中,它应该是“ for book in book”。

@app.route("/registration")
def registration():
    books =  db.execute("SELECT * FROM books").fetchall()
    for book in books :
        print(f"{book}")
© www.soinside.com 2019 - 2024. All rights reserved.