2

我想使用 pymodm 检查在用户注册期间给出的用户名是否已经存在,并使用类似于使用 pymongo 的明确解决方案:

if users.find_one({"username": username}) is not None:
     print("This username already exists")

要制作此代码,我必须编写:

try :
    user = User.objects.get({'username': username})
except errors.DoesNotExist:
    user = None
if user is not None:
    print("This username already exists")

因为 pymodm 使用期望。编码效率非常低且繁重。你有什么主意吗 ?

4

1 回答 1

0

嗯,是的,线程不是最佳方式,但是在这种情况下,它与在数据库请求准备好时保持打开侦听器等待回调的效果略有相同。

您的代码是多余的,因为异常已经检查了您的if语句。这样做:

try :
     user = User.objects.get({'username': username})
     print("This username already exists")
except errors.DoesNotExist:
     # You can create the user     
     print("This username can be used")

还可以考虑在用户名字段中创建索引,或者使用您可能已经拥有的索引字段执行用户查找操作,这将使您的应用程序在性能方面更好。

于 2018-04-25T10:54:24.220 回答