我想使用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使用了期望。这是非常低效和繁重的编码。你有什么想法吗?
发布于 2018-04-25 18:54:24
是的,线程化不是最好的方法,但在这种情况下,它的效果与让侦听器在db请求准备就绪时保持打开等待回调的效果略有相同。
您的代码是多余的,因为异常已经检查了您的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")还可以考虑在username字段中创建一个index,或者使用可能已有的索引字段执行用户查找操作,这将使您的应用程序在性能方面更好。
https://stackoverflow.com/questions/49969301
复制相似问题