【发布时间】:2013-02-15 15:52:36
【问题描述】:
我在思考如何处理烧瓶请求中过期的 sqlalchemy 对象时遇到了麻烦。假设我执行以下操作:
from models import Foo, Bar
@app.route("/page")
def page():
foos = Foo.query.all()
for foo in foos:
b = Bar(foo.data)
db.session.add(b)
db.session.commit()
return render_template('page.html', foos=foos)
然后在page.html:
{% for foo in foos %}
{{ foo. name }}
{% endfor %}
SQLAlchemy 然后将为模板循环中的每个 foo 执行选择查询,因为 session.commit() 将 foos 集合标记为过期。如果我知道foos 无法实际更改,那么阻止len(foos) 查询执行的正确方法是什么?同样,如果foos 发生了变化,那么使用单个查询而不是多次查询来刷新数据的正确方法是什么?
【问题讨论】:
标签: python sqlalchemy flask flask-sqlalchemy