【发布时间】:2016-01-21 10:44:22
【问题描述】:
假设它是一个模型定义:
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
account = Column(String(255), unique=True, index=True)
password = Column(String(128))
created_at = Column(DateTime, default=datetime.datetime.utcnow)
updated_at = Column(DateTime, onupdate=datetime.datetime.utcnow,
default=datetime.datetime.utcnow)
假设我在数据库中插入了Tom,但你再次插入它。你更喜欢哪种处理方式?
案例A
让它发生错误,然后处理错误。
try:
user = User(account='Tom', ...)
session.add(user)
session.commit()
except:
# do something
案例 B
搜索用户是否存在。如果它不存在,它将创建。
user = session.query(User).filter(User.account == 'Tom').one()
if user:
# do something
user = User(account='Tom', ...)
session.add(user)
session.commit()
哪个更好?
【问题讨论】:
标签: python orm error-handling flask sqlalchemy