我(2, 2, 4, 'final', 0)在 docker 中使用 Django,但我可以在内部 bash 来打开或执行所需的任何内容。但我无法调试。(如何在 Django 中调试,好方法?说明了一些方法,但对我不起作用)
在我的内部views.py有各种功能,例如这里的这个。
def visGraph(request):
showgraph = 'Graphen'
selectDB = request.GET.get('selectDB', '')
__import__("pdb").set_trace()
title += " <i>"+showgraph+"</i> ("+selectDB+")"
Run Code Online (Sandbox Code Playgroud)
它工作正常,直到我填写 pdb,添加调试器会使我的应用程序立即崩溃:
> /code/DjangoGraphen/views.py(74)visGraph()
-> title += " <i>"+showgraph+"</i> ("+selectDB+")"
(Pdb)
Internal Server Error: /DjangoGraphen/visGraph
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response …Run Code Online (Sandbox Code Playgroud) 让我们假设我有以下docker-compose.yml文件并行运行两个不同的python应用程序(例如通过烧瓶):
app1:
command: python app.py
build: app1/
app2:
command: python app.py
build: app2/
links:
- app1
Run Code Online (Sandbox Code Playgroud)
app2是app1因为我希望从中获取特定数据app1.现在我的问题是我想要调试此链接的某个场景.我可以轻松地调试app1和app2作为独立容器(通过docker-compose run --service-ports ... python app.py并放置pdb在代码中的某个位置).我的问题是当我想要调试app1以防请求来自app2.如果我开始app1使用docker-compose run,那么app2是不是能够解决的链接.随着更多应用/服务根据链接相互"交谈",这个问题变得更加严重.
有没有一个好方法来处理这个?你如何处理链接容器的调试问题(不一定是python的特定)?感谢您的投入.