基于Django类的视图获取发布数据并发送响应

Joh*_*eer 1 python django django-class-based-views

在Api上工作我想在Django中给出基于类的视图.

这是我到目前为止所得到的:

urls.py

from django.conf.urls import url

from .api import Api

urlpatterns = [
    url(r'^', Api.as_view())
]
Run Code Online (Sandbox Code Playgroud)

api.py

from django.http import HttpResponse
from django.utils.decorators import method_decorator
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import View    

class Api(View):    
    @method_decorator(csrf_exempt)
    def dispatch(self, request, *args, **kwargs):
        super(Api, self).dispatch(request, *args, **kwargs)

    def post(self, request, *args, **kwargs):
        return HttpResponse("result")

    def get(self, request):
        return HttpResponse("result")
Run Code Online (Sandbox Code Playgroud)

从Postman调用此代码时,我不断遇到2个问题:

发布数据

邮递员我在Post标题中设置了一个值但是当我使用调试器来检查POST数据时它就不存在了.

返回HttpResponse

我一直在收到错误 The view api.api.Api didn't return an HttpResponse object. It returned None instead.

当我将post方法更改为get方法并使用Postman发送get请求时,我得到相同的结果.

Pyt*_*sta 5

你需要这样做:

return super(Api, self).dispatch(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

您没有返回任何内容,None默认情况下会返回一个函数.

此外,您可能希望您的网址为 r'^$'