Django中不允许HTTP 405方法错误

Django中不允许HTTP 405方法错误,django,django-forms,django-views,django-rest-framework,Django,Django Forms,Django Views,Django Rest Framework,我有一个名为calculator.py的文件,其中有一个名为calc()的函数,该函数有一个名为calculate的方法: 我需要在视图py中给出一个POST请求,并且应该在POST请求中显示calculator.py中的变量a(即1)。下面是my views.py的屏幕截图 from django.shortcuts import render from django.http import JsonResponse from django.views.decorators.csrf impo

我有一个名为calculator.py的文件,其中有一个名为calc()的函数,该函数有一个名为calculate的方法:

我需要在视图py中给出一个POST请求,并且应该在POST请求中显示calculator.py中的变量a(即1)。下面是my views.py的屏幕截图

from django.shortcuts import render
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from django.views.decorators.clickjacking import xframe_options_exempt
from rest_framework.decorators import api_view
from rest_framework.renderers import JSONRenderer

from rest_framework.response import Response

from calculator import calc

import json

# local variables
debug = True


@xframe_options_exempt
@csrf_exempt
@api_view(['POST'])
def calculated(request):
    report_table = calc.calculate(data=request.data)

    return JsonResponse(report_table.data, status=status.HTTP_201_CREATED)
    #return JsonResponse({"data":report_table.data})
但是当我运行这个程序并检查POST请求的API端点时,它显示了以下错误。。!

谁能帮帮我,为什么我会犯这个错误。这个代码有什么问题吗。。? 我希望在API端点中显示值“1”,即在calculate.py中返回的值。有人能帮我做这个吗。。!?请原谅,如果我用错了任何术语,因为我是Django框架的新手。谢谢。

试试看

@api_view(['POST', 'GET'])
#                   ^^^^
或者你可以提出要求


更多详细信息

当您加载页面时,您将有效地发出GET请求,例如,您可以选择curl并尝试:

curl -i -XPOST http://container_ip:container_port/api/calculated
通常情况下,POST请求用于更改服务器上资源的状态,因此如果您只需检索数据,GET更合适

如果我使用
@api_view(['POST',GET'])
,那么我还需要为POST方法使用另一个if条件,但是我只想发布它,只需要查看POST方法是否正在访问
calculator.py
文件中
calc
类中的
calculator
方法。有没有办法看到这一点。。?
@api_view(['POST', 'GET'])
#                   ^^^^
curl -i -XPOST http://container_ip:container_port/api/calculated