Python SQLAlchemy获取匹配项查询的每一行并循环它们
我不熟悉Python和SQLAlchemy。我一直在玩从数据库中检索东西的游戏,每次都是这样,但是我有点不确定当select语句返回多行时该怎么做。在启动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
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
感谢您的帮助!这将是我的下一个问题。很高兴你让它工作了。