无法在python烧瓶中渲染db数据

时间:2017-02-18 15:48:47

标签: python flask sqlalchemy flask-sqlalchemy

我开始使用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获取所有信息后我看不到任何内容。

2 个答案:

答案 0 :(得分:0)

如果您确定数据库已创建并且内部有数据。然后你需要明确地将id转换为字符串:

output += str(el.id)

答案 1 :(得分:0)

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

  1. 开始使用pycharm。使用pycharm,您可以设置断点以逐步执行代码。仅这一点可能会告诉你问题所在。例如,您可以在检索Restaurant个对象后设置一个中断,并查看它是否返回了任何内容。
  2. 考虑使用flask-sqlalchemy而不是raw sqlalchemy。这不如pycharm重要,但它很有帮助。
相关问题