为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕尼黑的夜晚无繁华 2024-01-15 21:07:18
我想在视图中发送 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。
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您可以通过以下方式做到这一点:


class View_B(APIView):

    def post(self, request):

        httpresponse = View_A().get(request)

        # …

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

我们这里并没有真正发出 HTTP 请求,我们只是进行方法调用并用作request参数。


话虽如此,这通常意味着您应该“封装”逻辑。通常,我们会定义额外的函数或类(通常不是视图)来实现随后在两个视图中使用的通用逻辑。


查看完整回答
反对 回复 2024-01-15
?
跃然一笑

TA贡献1826条经验 获得超6个赞

这个例子:


import requests 

#...

class View_B(APIView):

    def post(self, request):

        response = requests.get(your_url)

        # ...

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


查看完整回答
反对 回复 2024-01-15
  • 2 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信