request.endpoint[:5] 的内容

Contents of request.endpoint[:5]

我正在阅读 Miguel Grinberg 的 Flask 一书,有一次他使用了以下行:

request.endpoint[:5] != 'auth.'

我知道 [:5] 是一个切片操作,但我不确定为什么要在这里使用它。列表由什么组成,我们只想要元素 0-5?

What does the list consist of that we only want elements 0-5?

准确的说,request.endpoint不是一个列表,而是一个字符串。它的其余部分包含什么并不重要,代码只关心它以 'auth.':

开头
('auth.somethingsomething'[:5] == 'auth.') is True

request.endpoint 是当前视图函数注册的名称,例如 auth.logindef login(): 视图的名称。具有 prefix. 前缀的视图已在蓝图上注册,该蓝图将相关视图分组。所以代码正在检查正在处理的当前视图是否是 auth 蓝图的一部分。

如果你想知道它包含什么值,你可以在代码中添加一个调试断点并检查它:

# ... previous app code ...
import pdb; pdb.set_trace()
request.endpoint[:5] != 'auth.'

然后 运行 并测试代码。当它达到那个点时,它会暂停执行并给你一个 pdb shell,它会让你查看 request 对象及其 endpoint 属性。

您可以通过

在终端上查看
venv $ python manage.py shell
import flask from request
print(request.endpoint)