我将ModelViewSet
与IsAuthenticatedOrReadOnly
权限类一起使用,如下所示:
class PostViewSet(viewsets.ModelViewSet, MarkdownToHTML):
permission_classes = (IsAuthenticatedOrReadOnly,)
当我在browsable API中调用这个视图时,数据返回时间大约为1100毫秒(已经太长了),但是当我从前端UI调用它时,调用需要6000-7000毫秒
调用同一视图的这两种方法之间的唯一区别是,我正在从我的前端UI应用程序传递一个json令牌。当我注释掉令牌头时,响应将在大约1秒后返回,与可浏览API中的时间相同
这个简单的身份验证步骤怎么可能需要5秒钟以上
以下是权限类:
class IsAuthenticatedOrReadOnly(BasePermission):
"""
The request is authenticated as a user, or is a read-only request.
"""
def has_permission(self, request, view):
return (
request.method in SAFE_METHODS or
request.user and
request.user.is_authenticated
)
我在一个项目中遇到过类似的问题。我会告诉你我的经验,以试图帮助你,我不能告诉你什么是确切的问题,但我会张贴的东西,我检查时,我有我的
问题是,解码身份验证令牌是一项非常昂贵的操作,因此您必须检查:
另一方面,记住DRF会根据标记的长度(以及出现的次数)将json转换为python对象(特别是字典),这也是一个非常昂贵的操作
相关问题 更多 >
编程相关推荐