我有一个名为calculator.py的文件,其中有一个名为calc()的函数,它有一个名为calculate的方法:calculator.py
class calc():
@classmethod
def calculate(request_data):
# start = time.time()
results = {}
a = 1
return a
我需要在视图中给出一个POST请求,py并且应该在POST请求中的calculator.py中显示变量a(即1)。以下是我的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 End point result
GET /api/calculated
HTTP 405 Method Not Allowed
Allow: OPTIONS, POST
Content-Type: application/json
Vary: Accept
{
"detail": "Method \"GET\" not allowed."
}
有人可以帮助我,为什么我会收到此错误。这段代码有什么问题吗? 我想要值'1',即在calculate.py中返回以显示在API端点中。有人可以帮我弄这个吗..!?如果我使用任何错误的条款,请原谅我,因为我是Django框架的新手。感谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
当你加载页面时,你正在有效地发出GET请求,你可以放弃卷曲,例如尝试:
curl -i -XPOST http://container_ip:container_port/api/calculated
通常,POST请求旨在用于更改服务器上资源的状态,因此,如果您唯一需要做的就是检索数据,那么GET更合适