我正在使用flask,我开始将SQLalchemy用于我的数据库。我有一个很大的字典列表:
data = [{'id': '3242342342', 'name': 'sfsdfs fsdcd'},
{'id': '2131231221', 'name': 'sfsddddfs fsdcd'},
{'id': '3434343544', 'name': 'sfsfdgfddfs fsdcd'},
{'id': '5465443545', 'name': 'sfsiiiiiiidfs fsdcd'}]
我有一个这样的课:
class Record(db.Model):
id = db.Column(db.String(20), primary_key=True)
name = db.Column(db.String(50))
我的任务是处理来自data
的所有记录,如果它们不在数据库中,则添加它们并更新它们。这样做的正确方法是什么?
感谢
答案 0 :(得分:2)
合并功能就是你想要的。
http://docs.sqlalchemy.org/en/latest/orm/session_state_management.html#unitofwork-merging
for elem in data:
tmp = Record(id=elem['id'], name=['name'])
session.merge(tmp)
当然晚些时候提交。
答案 1 :(得分:0)
您可以使用for循环迭代数据,但我不确定它是否是最佳方式:
for elem in data:
for id, name in elem.items():
record = Record.query.get(id)
if record:
record.id = id
record.name = name
else:
record = Record(id=id, name=name)
session.add(record)