Python中文
首页
教程
问答
标签
搜索
登录
注册
Sqlalchemy未将对象更改提交到postgres数据库
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我使用以下代码段:</p> <pre><code>@app.route('/budget_item/<int:budget_id>/edit', methods=['GET', 'POST']) def budget_item_edit(budget_id): budget_item = session.query(Budget).filter_by(id=budget_id).one() print "Start EDIT sequence" # Return form data from HTML initial load form elif request.method == 'POST': budget_amount_reallocated_total = budget_item.budget_amount_reallocated_total #ORIGINAL BUDGET if request.form['transaction_type'] == 'Original Budget': #amount if request.form['amount'] == "": amount = 0 else: amount = float(str(request.form['amount'])) budget_item = Budget( #created_date = "", budget_transaction_type = request.form['transaction_type'], budget_line = request.form['budget_line'], amount = amount, description = request.form['description'] #date_received = request.form['date_received'] ) try: count = 1 while count < 10000: count += 1 #budget_line setattr(budget_item,'budget_line'+str(count),request.form['budget_line'+str(count)]) #amount setattr(budget_item,'amount'+str(count),float(request.form['amount'+str(count)])) budget_amount_reallocated_total += float(request.form['amount'+str(count)]) setattr(budget_item, 'budget_amount_reallocated_total', budget_amount_reallocated_total) #description setattr(budget_item,'description'+str(count), request.form['description'+str(count)]) #date_received setattr(budget_item,'date_received'+str(count),request.form['date_received'+str(count)]) session.commit() except: session.commit() return redirect(url_for('budget_master')) else: print "I'm done! This is not a post request" </code></pre> <p>这段代码被设置为通过POST请求从HTML传递数据,然后在Postgres数据库中更新相应的对象。我可以确认从DB“budget_item”查询的对象正在被settattr更新。在本文的最后,我使用commit()更新对象;但是,数据库没有反映这些更改。只是为了测试一下,以确保一切顺利进行,我已经试过了会话.add(预算项目)后接会话.提交()以确保与数据库的连接正常。这很管用。如何将此预算项目对象更新到数据库中?任何帮助都是非常感谢的。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我认为一个简单的</p> <pre><code>budget_item.budget_amount_reallocated_total = budget_amount_reallocated_total session.add(budget_item) session.commit() </code></pre> <p>是正确的方法</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
jupyter运行一个旧的pytorch版本
8 回答
Jupyter运行不同版本的卸载库?
3 回答
Jupyter运行指定的键盘快捷键
10 回答
Jupyter通过.local文件“逃逸”virtualenv。我该如何缓解这种情况?
7 回答
Jupyter重新加载自定义样式
1 回答
Jupyter错误:“没有名为Jupyter_core.paths的模块”
9 回答
jupyter错误:无法在随机林中将决策树视为png
8 回答
Jupyter错误'内核似乎已经死亡,它将自动重新启动'为一个给定的代码块
5 回答
Jupyter错误地用阿拉伯语和字母数字元素显示Python列表
10 回答
Jupyter隐藏数据帧索引,但保留原始样式
7 回答
Jupyter集线器:启动器中出现致命错误。。。系统找不到指定的文件
6 回答
Jupyther中相同值的相同哈希,但导出到Bigquery时不相同
3 回答
Jupy上Python的读/写访问问题
1 回答
jupy上没有模块cv
7 回答
Jupy上的排序错误
6 回答
Jupy中bqplot图形的紧凑布局
7 回答
Jupy中matplotlib plot的连续更新
6 回答
Jupy中Numpy函数的文档
4 回答
Jupy中Pandas的自动完成问题
10 回答
jupy中Qt后端的Matplotlib动画
6 回答