[英]Django class based views get post data and send response
在Api上工作时,我想随意使用Django中基于类的视图。
这是我到目前为止所得到的:
from django.conf.urls import url
from .api import Api
urlpatterns = [
url(r'^', Api.as_view())
]
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")
从邮递员调用此代码时,我不断遇到2个问题:
在邮递员中,我在Post标头中设置了一个值,但是当我使用调试器检查POST数据时,它就不存在了。
我不断收到错误The view api.api.Api didn't return an HttpResponse object. It returned None instead.
The view api.api.Api didn't return an HttpResponse object. It returned None instead.
当我将post方法更改为get方法并与Postman发送get请求时,我得到的结果相同。
您需要做:
return super(Api, self).dispatch(request, *args, **kwargs)
您什么都不返回,默认情况下一个函数返回None
。
另外,您可能希望将网址设为r'^$'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.