我正在尝试使用pyexcel导入电子表格,但我不想将现有记录添加到表中。我要么跳过它们,要么最好更新它们。
我目前正在使用带有init函数的save_book_to_database()
方法。我希望能够从init函数返回None并让save_book_to_database()
跳过记录,但这似乎不起作用。
我是否只需要处理代码记录插入和更新,或者是否有一个库可以更优雅地处理它?</ p>
这是一个片段:
@app.route("/importEvents", methods=['GET', 'POST'])
def doEventsImport():
if request.method == 'POST':
def init_func(row):
# see if this is an existing event
eventKey = row["EventKey"]
foundEvent = db.session.query(Event).filter_by(EventKey=row['EventKey']).first()
if foundEvent:
print 'foundEvent:'
print foundEvent
return None
event = Event(row['EventKey'], row['Name'], row['Description'], row['BeginDate'], row['EndDate'], row['RegBeginDate'], row['RegEndDate'], row['Location'], row['Address1'], row['Address2'], row['City'], row['State'], row['Zip'], row['URL'], row['Email'], row['Phone'])
return event
request.save_book_to_database(field_name='file', session=db.session,
tables=[Event],
initializers=[(init_func)])
return "Saved"