擅长:python、mysql、java
<p>代码中的问题是由于数据库默认使用<a href="http://en.wikipedia.org/wiki/Isolation_%28database_systems%29#Repeatable_reads_.28phantom_reads.29" rel="noreferrer">REPEATABLE READ isolation level</a>造成的,因此除非您调用<code>commit()</code>或{<cd2>}(或者按照Xeross的建议使用<code>autocommit=True</code>)或手动更改隔离级别,否则查询返回相同的结果。在</p>
<p>是的,SQLAlchemy会缓存映射对象(不是查询结果!),因为ORM模式要求每个标识对应一个对象。默认情况下,SQLAlchemy使用弱标识映射作为缓存,所以当没有对该对象的引用时,该对象将自动从会话中移除。请注意,后续查询将使用新数据更新缓存对象的状态,因此无需担心此缓存。在</p>