gpt4 book ai didi

python - django-rest-framework:全局限制对 GET 的请求?

转载 作者:太空宇宙 更新时间:2023-11-04 10:21:15 25 4
gpt4 key购买 nike

我正在使用 django-rest-framework,我想只允许对我的 API 发出 GET 请求。

是否有一些全局设置?

目前我正在装饰个别 View ,像这样:

@api_view(['GET'])
def my_api_view(request, format=None):
# get data

最佳答案

你可以写一个custom Permission class IsRequestMethodGet 将仅向 GET 请求授予访问权限。

要实现自定义权限IsRequestMethodGet,覆盖BasePermission类并实现.has_permission(self, request, view)方法。如果请求应被授予访问权限,该方法应返回 True,否则返回 False

from rest_framework import permissions

class IsRequestMethodGet(permissions.BasePermission):
"""
The request is a GET request.
"""

def has_permission(self, request, view):
return request.method == 'GET' # Returns True if GET request

因此,如果请求方法是GET,请求将被授予访问权限,否则不会。

现在,您需要在全局设置中包含此自定义权限类。

REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
'my_app.permissions.IsRequestMethodGet',
)
}

关于python - django-rest-framework:全局限制对 GET 的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32184756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com