是否可以在另一个视图中发送一个视图的http请求?

我想在视图中发送 http 请求。请求 URL 与另一个视图相关。像这样的东西:


class View_A(APIView):

    def get(self, request):

       return Response({'foo':'bar'})



class View_B(APIView):

    def post(self, request):

        # Here I would want to send a request to View_A, something like this:

        request_view_A = View_A.as_view().get('URL_FROM_VIEW_A')

        # ...

        return Response({'foo2':'bar2'})

我已经看到这个问题有不同的焦点,但是对我不起作用,因为来自View_A(get)的http方法与来自(post)的http方法不同View_B。


慕尼黑的夜晚无繁华
浏览 45回答 2
2回答

慕虎7371278

您可以通过以下方式做到这一点:class View_B(APIView):    def post(self, request):        httpresponse = View_A().get(request)        # …        return Response({'foo2':'bar2'})我们这里并没有真正发出 HTTP 请求,我们只是进行方法调用并用作request参数。话虽如此,这通常意味着您应该“封装”逻辑。通常,我们会定义额外的函数或类(通常不是视图)来实现随后在两个视图中使用的通用逻辑。

跃然一笑

这个例子:import requests #...class View_B(APIView):    def post(self, request):        response = requests.get(your_url)        # ...        return Response({'foo2':'bar2'})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python