擅长:python、mysql、java
<p>要回答您的问题,要更新数据库中已经存在的<code>budget_item</code>,您需要更新从数据库中检索到的<code>Budget</code>实例,即</p>
<pre><code>budget_item = session.query(Budget).filter_by(id=budget_id).one()
</code></pre>
<p>不是您新创建的:</p>
^{pr2}$
<p>这里的第一个<code>budget_item</code>表示数据库中的行,因此这是要更新的行。为此,您可以将创建第二个<code>Budget</code>实例的代码替换为:</p>
<pre><code>budget_item.budget_transaction_type = request.form['transaction_type']
budget_item.budget_line = request.form['budget_line']
budget_item.amount = amount
budget_item.description = request.form['description']
</code></pre>
<p>更新完<code>Budget</code>实例后,可以调用<code>session.commit()</code>将其刷新到数据库中。在</p>
<p>正如我在对您的问题的评论中所提到的,您似乎正在尝试向<code>budget_item</code>添加大量附加属性,所有这些属性都将被sqlalchemy忽略,除非它们是在<code>Budget</code>实例与<code>Budget</code>表之间的映射中定义的。在</p>