这种错误提示您定义名称。但是我想我已经尽力了
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()
要调试名称错误,您希望找出在代码中使用变量时未定义的位置。您忘记了缩进以下代码,因此它们不属于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}")