【发布时间】:2015-10-18 11:56:42
【问题描述】:
我正在构建一个应用程序,它从一项服务接收 webhook,将数据存储在数据库中,然后通过 API 提供数据。
我能够成功地将数据添加到我的应用程序中,但是当我查询数据库时,我只收到了上次启动应用程序时数据库中的第一次提交。
例如,如果我启动应用程序时 Orders 表中有 26 个订单,然后触发 webhook,Order.query.all() 将返回 27 个订单,直到我重新启动应用程序,无论表中实际有多少订单 (我可以使用 MySQL 进行验证)。
这是一个用于向表中插入数据的类的示例:
@webhook.route('/order/insert', methods=['POST'])
def insert_orders():
soda_json = request.json
db.session.add(Order(
order_id=soda_json['id'],
created_at=datetime.datetime.now(),
currency=soda_json['currency'],
total_line_items_price=soda_json['total_line_items_price'],
refunds=sum(float(i) for i in soda_json['refunds'] if soda_json['refunds']),
shipping_lines_price=sum([float(line['price']) for line in soda_json['shipping_lines']]),
note=soda_json['note']
))
db.session.commit()
return '200'
这是我用于测试的基本 API 方法:
order_test = Order.query.all()
@api.route('/display', methods=['POST', 'GET'])
def display_test():
return jsonify(json_list=[i.serialize for i in order_test]), '200'
为了始终获取最新数据,我缺少什么?
【问题讨论】:
-
如何填充order_test?你能提供从数据库中填充它的代码吗
-
刚刚添加的order_test
-
试试
return jsonify(json_list = order_test)。如果这不起作用,请尝试return jsonify(json_list = order_test.all())。
标签: python mysql flask flask-sqlalchemy