我正在尝试使用大约二十行的表进行数据库插入。插入看起来像这样:
if not title.name:
title.name = data['title']
if not title.synopsis:
title.synopsis = data['synopsis']
...
基本上,如果每个 db 列不存在行,我将更新这些行。
什么是更清洁、更有效的方法呢?
for column in ('name', 'synopsis', 'something', 'other'):
if not getattr(title, column):
setattr(title, column, data[column])
您可以使用or
:
title.name = title.name or data['title']
title.synopsis = title.synopsis or data['synopsis']
或者,您可以动态执行此操作:
for attr in data:
if not getattr(title, attr):
setattr(title, attr, data[attr])
用途getattr
及setattr
功能:
for attribute in ['title', 'synopsis']:
if not getattr(title, attribute):
setattr(title, attribute, data[atribute])
你可以在这里阅读更多关于它们的信息。