Skip to main content
 首页 » 编程设计

python之基于 Django 类的 View 获取发布数据并发送响应

2025年05月04日45yxwkf

在 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'^$'