无法在python flask中呈现db数据

无法在python flask中呈现db数据,python,flask,sqlalchemy,flask-sqlalchemy,Python,Flask,Sqlalchemy,Flask Sqlalchemy,我正在开始使用PythonFlask,我正在尝试了解如何将数据呈现到html视图,从数据库获取数据。当我运行代码时,它不会产生错误,但是视图没有信息,如果我在单独的测试文件中尝试代码,我可以看到控制台中显示了数据库中的所有内容,但不确定为什么它不会显示在html视图中。 这是代码 from flask import Flask from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from dat

我正在开始使用PythonFlask,我正在尝试了解如何将数据呈现到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
从烧瓶导入烧瓶
从sqlalchemy导入创建引擎
从sqlalchemy.orm导入sessionmaker
从数据库\u设置导入库、餐厅、菜单项
引擎=创建引擎('sqlite:///restaurantmenu.db')
Base.metadata.bind=引擎
DBSession=sessionmaker(bind=engine)
session=DBSession()
app=烧瓶(名称)
@应用程序路径(“/”)
def HelloWorld():
allRest=session.query(Restaurant).all()
输出=“”
对于allRest中的el:
输出+=el.id
输出+='
' 返回输出

Html视图:空且无错误。因此,我不确定为什么在从数据库获取所有信息后,我看不到任何东西。

如果您确定数据库是创建的并且里面有数据的话。然后需要将id显式转换为字符串:

output += str(el.id)

我认为最可能的答案是数据库中没有数据。如果不是这样,我们可能需要更多的信息。至少,我们可能需要看到html代码被输出。这就是说,您应该能够自己比远程调试人员更容易地调试它。我有两个建议:

  • 开始使用pycharm。使用pycharm,您可以设置断点来逐步遍历代码。仅此一点就可能告诉您问题所在。例如,您可以在检索
    Restaurant
    对象后设置一个中断,只需查看它是否返回了任何内容
  • 考虑使用烧瓶炼金术而不是原始炼金术。这不像pycharm那么重要,但它很有帮助

  • 数据库中是否充满了数据?@SelimAjimi是的,我添加了一个种子,有很多信息,如果我用上面使用的相同命令创建一个test.py文件,我就可以让它们工作。