如何用Django和pdb调试web请求?

2024-10-01 22:29:16 发布

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

我想使用pdb调试Django中的视图,但到目前为止我还没有成功,出现了一个bdbquiit错误:

我尝试过的视图是一个简单的get请求:

def get_file_names(request):
    pdb.set_trace()
    my_files = Files.objects.filter(user_id=request.user))
    name_list += list(map(lambda x: (x.id, x.name, x.description),
                          my_files))

    return JsonResponse({'rows': name_list})

几个注意事项:

  • 我不喜欢使用Django pdb,因为这迫使我修改客户机的请求参数。

  • 我也不想从pdb调用我的代码(因为这个代码是 从客户端调用)。

  • Django版本1.10.6
  • 应用程序正在docker容器中运行

有人有有效的解决方案吗?我发现用python调试复杂的web请求可能非常乏味,如果pdb能够工作的话,那将是非常令人惊奇的。你知道吗

注意,这不是一个子流程,只是一个简单的get请求(最终我希望它能处理更复杂的请求,但我已经发布了一个简单的示例,因为它已经失败了)。你知道吗

有什么建议吗?建议here似乎不起作用。你知道吗


Tags: django代码name视图idgetrequestmy
1条回答
网友
1楼 · 发布于 2024-10-01 22:29:16

为了在容器中运行的Django应用程序中运行pdb,必须使用-it标志运行。你知道吗

docker run -it .... djangoimage

如果正在运行分离(-d),则可以附加到容器docker attach $IDCONTAINER。你知道吗

如果您使用docker compose运行:

services:
  django:
    # ...
    stdin_open: true
    tty: true

然后在运行pdb时使用docker attach附加到Django容器。你知道吗

相关问题 更多 >

    热门问题