在 Api 上工作,我想试试 Django 中基于类的 View 。
这是我到目前为止得到的:
网址.py
from django.conf.urls import url
from .api import Api
urlpatterns = [
url(r'^', Api.as_view())
]
接口(interface).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")
从 Postman 调用此代码时,我不断遇到 2 个问题:
发布数据
在 postman 中,我在 Post header 中设置了一个值,但是当我使用调试器检查 POST 数据时,它却不存在。
返回 HttpResponse
我一直收到错误 The view api.api.Api didn't return an HttpResponse object。它返回 None。
当我将 post 方法更改为 get 方法并使用 Postman 发送 get 请求时,我得到了相同的结果。
请您参考如下方法:
你需要做的:
return super(Api, self).dispatch(request, *args, **kwargs)
你没有返回任何东西,函数默认返回 None。
此外,您可能希望您的网址为 r'^$'
