无法使用Python / Django重新分配已声明的变量

时间:2018-08-06 20:56:14

标签: django python-3.x mongodb

我正在使用Python,Django和Mongo创建登录系统。这是我的功能

String fileContentsAsString = "ii ... bet ... you, ibetyouyou";
String regex = "i(?>(?!i|bet).)*+bet(?>(?!you).)*+you";
Pattern p = Pattern.compile(regex, Pattern.DOTALL);
Matcher m = p.matcher(fileContentsAsString);
while (m.find()) {
    System.out.println(m.group());
}

每次都会将“ WTF错误”返回到模板中,就像语句被忽略一样

我的代码有什么问题? 我是Python的新手

编辑:

这是屏幕截图 enter image description here

1 个答案:

答案 0 :(得分:1)

实际上,此代码中只有一条路径不会重新分配response,在这种情况下,第一个if语句为true,但是Mongodb查询返回一个空集。这是因为调用find()的结果是一个Cursor实例,该实例始终为布尔True,但是迭代时没有内容,因此跳过for循环。

在您的情况下,您似乎只想要一个结果,因为您总是在第一次迭代后中断。在这种情况下,您应该使用find_one()返回单个文档并完全删除for循环。

result = client['db']['users'].find_one({'name': u})
if result:
    if bcrypt.checkpw( p, res['password'] ):
       ...