我开始使用Python Flask,我试图了解如何将数据呈现到html视图中从数据库获取数据。当我运行代码时它没有产生任何错误,但视图没有信息,如果我在一个单独的测试文件中尝试代码,我可以看到数据库中的所有内容都显示在控制台中,但不确定为什么它不显示在HTML视图。 这是代码。
from flask import Flask
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from database_setup import Base, Restaurant, MenuItem
engine = create_engine('sqlite:///restaurantmenu.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind = engine)
session = DBSession()
app = Flask(__name__)
@app.route('/')
def HelloWorld():
allRest = session.query(Restaurant).all()
output = ''
for el in allRest:
output += el.id
output += '</br>'
return output
Html视图:空并且没有错误。所以我不确定为什么在从db获取所有信息后我看不到任何内容。
答案 0 :(得分:0)
如果您确定数据库已创建并且内部有数据。然后你需要明确地将id转换为字符串:
output += str(el.id)
答案 1 :(得分:0)
我认为最可能的答案是数据库中没有数据。如果不是这样,我们可能需要更多信息。可能我们至少需要看到输出的html代码。也就是说,你应该能够比远程更容易地调试这个。我有两条建议:
Restaurant
个对象后设置一个中断,并查看它是否返回了任何内容。