我想User在数据库中插入几行。我并不关心插入是否成功,只要我收到通知即可,在这两种情况下我都可以做到这一点,那么哪一种在性能方面更好(主要是速度)?
save方法)并捕获潜在的IntegrityError异常get_or_create从QuerySet类中调用方法想想你在做什么:你想将行插入数据库,如果对象存在的话,你不需要从中取出对象。Ask for forgiveness,并捕获IntegrityError异常:
try:
user = User(username=username)
user.save()
except IntegrityError:
print "Duplicate user"
Run Code Online (Sandbox Code Playgroud)
这样您就可以避免 进行额外get()查找的开销get_or_create()。
仅供参考,EAFP这是 Python 中的常见做法/编码风格:
请求原谅比请求许可更容易。这种常见的 Python 编码风格假设存在有效的键或属性,并在假设证明错误时捕获异常。这种干净、快速的风格的特点是存在许多 try 和 except 语句。
另请参阅:/sf/ask/426509471/
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |