我想使用pdb调试Django中的视图,但到目前为止,我一直没有成功,但是遇到了BdbQuit错误:
我尝试过的视图是一个简单的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调用我的代码(因为该代码正在 从客户端调用)。
有人有可行的解决方案吗?我发现用python调试复杂的Web请求可能非常繁琐,而且如果pdb可以工作的话,那真的很棒。
请注意,这不是一个子流程,只是一个简单的get请求(最终,我希望它可以处理更复杂的请求,但由于此操作已经失败,因此我发布了一个简单的示例)。
有什么建议吗?建议here似乎无效。
答案 0 :(得分:0)
要在容器中运行的Django应用程序中运行pdb
,必须使用-it
标志运行。
docker run -it .... djangoimage
如果您运行的是独立(-d
),则可以附加到容器docker attach $IDCONTAINER
。
如果您正在使用docker-compose运行:
services:
django:
# ...
stdin_open: true
tty: true
然后在运行docker attach
时使用pdb
附加到Django容器。