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问题
我是否正确构建了这个递归神经网络
7 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
5 回答
我是否正确理解Keras中的批次大小?
9 回答
我是否正确理解PyTorch的加法和乘法?
8 回答
我是否正确组织了我的Django应用程序?
4 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
1 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
6 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
8 回答
我是否用python安装了socks模块?
10 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
9 回答
我是否缺少spaCy柠檬化中的预处理功能?
2 回答
我是否缺少给定状态下操作的检查?
9 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
1 回答
我是否能够使用用户输入作为colorama模块中的颜色?
6 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
3 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
7 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
8 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
10 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
9 回答
我是否要使它成为递归函数?
10 回答