正在Django视图中等待另一个请求

2024-09-30 14:19:34 发布

您现在位置:Python中文网/ 问答频道 /正文

标题几乎是自我解释的,我需要一个视图等待调用另一个视图或超时。它看起来像这样:

class WaitingView(APIView):
    def post(self, request):
        ...do_things
        called = wait_for_DeblockingView_or_timeout()
        if called:
            return Response(200)
        return Response(408)


class DeblockingView(APIView):
    def post(self, request):
        ...do_things
        send_some_signal_to_unlock()
        return Response(200)

我已经尝试过使用threading模块的Event对象,使用它的wait()set()方法,但要么我做得不对,要么这不是这个用例的方法。关于那次尝试的更多信息


Tags: 方法self视图returnresponserequestdefpost
1条回答
网友
1楼 · 发布于 2024-09-30 14:19:34

您可以使用session变量在视图之间共享数据:

class WaitingView(APIView):
    def post(self, request):
        ...do_things
        called = request.session.get('deblocking_call')
        if called is True:
            del request.session['deblocking_call']
            return Response(200)
        return Response(408)


class DeblockingView(APIView):
    def post(self, request):
        ...do_things
        request.session['deblocking_call'] = True

        return Response(200) ## I would use 'return redirect("waiting_view")'

相关问题 更多 >