Python SQLAlchemy获取匹配项查询的每一行并循环它们

Python SQLAlchemy获取匹配项查询的每一行并循环它们,python,sqlalchemy,flask,Python,Sqlalchemy,Flask,我不熟悉Python和SQLAlchemy。我一直在玩从数据库中检索东西的游戏,每次都是这样,但是我有点不确定当select语句返回多行时该怎么做。在启动SQLAlchemy之前,我尝试使用一些旧代码,但是db是SQLAlchemy对象,没有execute()方法 application = Applications.query.filter_by(brochureID=brochure.id) cur = db.execute(application) entries = cur.fetcha

我不熟悉Python和SQLAlchemy。我一直在玩从数据库中检索东西的游戏,每次都是这样,但是我有点不确定当select语句返回多行时该怎么做。在启动SQLAlchemy之前,我尝试使用一些旧代码,但是
db
是SQLAlchemy对象,没有
execute()
方法

application = Applications.query.filter_by(brochureID=brochure.id)
cur = db.execute(application)
entries = cur.fetchall()
然后在我的HTML文件中

      {% for entry in entries %}
      var getEmail = {{entry.2|tojson|safe}}
      emailArray.push(getEmail);

我查看了SQLAlchemy文档,没有找到一个与获取所有行相当的
.first()
。谁能给我指出正确的方向吗?毫无疑问,这是一个非常小的问题。

处理orm查询的常用方法是通过类,在某个地方您应该有一个

engine = sqlalchemy.create_engine("sqlite:///...")
Session = sqlalchemy.orm.sessionmaker(bind=engine)
我对flask不太熟悉,但它可能会帮你完成一些工作

使用
会话
工厂,您的应用程序将

session = Session()
entries = session.query(Application) \
          .filter_by(...) \
          .all()

使用orm查询的通常方法是通过类,在某个地方您应该有一个

engine = sqlalchemy.create_engine("sqlite:///...")
Session = sqlalchemy.orm.sessionmaker(bind=engine)
我对flask不太熟悉,但它可能会帮你完成一些工作

使用
会话
工厂,您的应用程序将

session = Session()
entries = session.query(Application) \
          .filter_by(...) \
          .all()

您的查询是正确的,您只需要更改与结果交互的方式。您正在寻找的方法是


您的查询是正确的,您只需要更改与结果交互的方式。您正在寻找的方法是


这在数据库中非常有效,我可以使用
dump()
在条目中查看应用程序对象,但是当我将条目传递到HTML文件时,它会说它未定义。你知道为什么会这样吗?只是想澄清一下(编辑按钮似乎不见了)。我的HTML文件中的条目具有正确数量的对象,但每个条目都未定义。我使用的代码与我在上面的HTML文件中发布的代码相同抱歉,我实际上刚刚对其进行了排序,我访问了条目的属性,如
entry.1
,而我本应使用列名,即
entry.id
entry.brochureName
感谢您的帮助!这将是我的下一个问题。很高兴你让它工作了。这在数据库中非常有用,我可以使用
dump()
在条目中看到应用程序对象,但是当我将条目传递到HTML文件时,它会说它未定义。你知道为什么会这样吗?只是想澄清一下(编辑按钮似乎不见了)。我的HTML文件中的条目具有正确数量的对象,但每个条目都未定义。我使用的代码与我在上面的HTML文件中发布的代码相同抱歉,我实际上刚刚对其进行了排序,我访问了条目的属性,如
entry.1
,而我本应使用列名,即
entry.id
entry.brochureName
感谢您的帮助!这将是我的下一个问题。很高兴你让它工作了。