Python 使用线程更新数据库。计时器不';我不能正确地更新它
我在一个网站上工作 当用户从新设备登录到站点时,我会向用户发送验证代码 如果用户由于登录尝试失败而试图在10秒内登录,我不想重新发送新的验证代码 因此,我正在数据库中保存他试图登录的浏览器的设备id。并在10秒后调用函数清除数据库中的设备id 为此,我编写了以下代码:Python 使用线程更新数据库。计时器不';我不能正确地更新它,python,django,mongodb,Python,Django,Mongodb,我在一个网站上工作 当用户从新设备登录到站点时,我会向用户发送验证代码 如果用户由于登录尝试失败而试图在10秒内登录,我不想重新发送新的验证代码 因此,我正在数据库中保存他试图登录的浏览器的设备id。并在10秒后调用函数清除数据库中的设备id 为此,我编写了以下代码: code = validation_code user_object.ip_validation_code = code user_object.pre_validation_devices[device_used] = code
code = validation_code
user_object.ip_validation_code = code
user_object.pre_validation_devices[device_used] = code
def clear_pre_validation_devices():
user_object.pre_validation_devices = {}
user_object.save()
Timer(30.0, clear_pre_validation_devices).start()
user_object.save()
在执行代码之后,我发现这并没有像我预期的那样清除字段预验证\u设备
我正在使用Django 1.6和Mongo DB,如果有任何帮助,我将不胜感激
谢谢您可能应该只使用Mongo内置的功能。@DanielRoseman但我只想从文档中删除一个特定字段。不是整个文档。我无法使这种方法起作用。所以我找到了一个解决办法。我节省了生成验证代码的时间。我找到了用户尝试登录的时间。我发现了区别。如果差异小于30秒,我将不发送新的验证代码。您可能只需要使用Mongo内置的功能。@DanielRoseman,但我只想从文档中删除一个特定字段。不是整个文档。我无法使这种方法起作用。所以我找到了一个解决办法。我节省了生成验证代码的时间。我找到了用户尝试登录的时间。我发现了区别。如果差异小于30秒,我不会发送新的验证代码。