【问题标题】:Disable CSRF on api view method(django rest framework)在 api 视图方法上禁用 CSRF(django rest 框架)
【发布时间】:2018-08-12 08:27:59
【问题描述】:

我有这样的api方法:

@api_view(['POST'])
@login_required
def get_posts(request):
    # ...

如何在此方法上禁用 CSRF?

【问题讨论】:

    标签: django django-rest-framework django-csrf


    【解决方案1】:

    对于基于函数的视图,您通常可以使用装饰器csrf_exempt

    from django.views.decorators.csrf import csrf_exempt
    from django.http import HttpResponse
    
    @csrf_exempt
    def my_view(request):
        return HttpResponse('Hello world')
    

    更新DRF 可能有一个例外。看看here

    【讨论】:

    • 为什么要从示例中删除 @api_view()?
    • 因为api_view 仅适用于 DRF。我想解释一下装饰器csrf_exempt 不是特定于 DRF 的。因此,我更新了答案并将其链接到另一个 SO 问题,该问题更详细地解释了另一个相关的警告(身份验证)。
    猜你喜欢
    • 2017-07-02
    • 1970-01-01
    • 2013-09-20
    • 2016-06-23
    • 2015-09-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    相关资源
    最近更新 更多