我很好奇是否有合理的方法将(惊人的)django-debug-toolbar与AJAX查询一起使用。
例如,我使用带有一堆参数的jQuery $ .get来命中Django URL并将其加载到内联中。如果我有错误,它不会在工具栏上注册。我也不能通过复制AJAX URL来使用它,因为DDT附加到响应的body标签,并且使用AJAX响应包含body标签没有任何意义。
任何方向都会有所帮助!谢谢!
答案 0 :(得分:35)
之前我遇到过同样的问题! 当我正在做越来越多的AJAX繁重的应用程序时,我发布了一个Django Application和一个Chrome extension,它们共同解决了这个问题。
所有信息都在github存储库中。
答案 1 :(得分:14)
我写了Request History Panel for Django Debug Toolbar,可以添加到Django调试工具栏中查看当前请求以外的请求(包括AJAX请求)。
通过pip安装:
pip install django-debug-toolbar-request-history
在 settings.py 中将'ddt_request_history.panels.request_history.RequestHistoryPanel'
添加到DEBUG_TOOLBAR_PANELS
,例如:
DEBUG_TOOLBAR_PANELS = [
'ddt_request_history.panels.request_history.RequestHistoryPanel', # Here it is
'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
'debug_toolbar.panels.profiling.ProfilingPanel',
]
答案 2 :(得分:6)
我最近遇到了这个问题。我的快速肮脏但工作的解决方案只是添加一些HTML视图来灵活地使用相同的代码。
例如,如果我在NewRelic中可以看到我的网站90%的时间用于对/ search_for_book?title =的ajax调用,我的代码可能如下所示:
views.py:
def search_for_book(request, title):
data = _search_for_book(title)
return json_response(data)
def test_search_for_book(request, title):
data = _search_for_book(title)
return http_response(data)
瓶颈将出现在 _search_for_book 代码中;是否我们称之为ajax与诊断效率低下无关(在我的情况下,至少是YMMV)
答案 3 :(得分:4)
Ddt将自身插入响应,这意味着没有标准的方法来浏览其面板以获取AJAX请求。此外,AJAX响应可以是JSON格式,这使得ddt无法插入它。
就个人而言,我会找到一种将ddt输出记录到文本文件的方法,或者它可能支持客户端 - 服务器架构,其中客户端在AJAX请求处理程序中工作并将数据发送到服务器?我不知道有什么可能,因为那里有十几个ddt克隆。