Django中不允许HTTP 405方法错误
我有一个名为calculator.py的文件,其中有一个名为calc()的函数,该函数有一个名为calculate的方法: 我需要在视图py中给出一个POST请求,并且应该在POST请求中显示calculator.py中的变量a(即1)。下面是my views.py的屏幕截图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
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