如何在AJAX调用中使用django-debug-toolbar?
我很好奇,如果有合理的方式来使用AJAX查询(令人惊叹的)Django的调试工具栏。如何在AJAX调用中使用django-debug-toolbar?
例如,我用一个jQuery $不用彷徨与一堆参数打一个Django的URL和内嵌加载它。如果我有这个错误,它没有注册在工具栏上。我也不能通过复制AJAX URL来使用它,因为DDT附加到响应的主体标签,并且将AJAX响应包含在body标签中没有任何意义。
任何方向都会有所帮助!谢谢!
我以前有同样的问题! 而当我做越来越多的AJAX重量级应用时,我发布了一个Django Application和一个Chrome extension,它们一起解决了这个问题。
所有的信息是在GitHub的仓库。
滴滴涕插头本身到响应,这意味着有浏览其面板为AJAX请求的的标准方法。此外,AJAX响应可以是JSON格式,这使得ddt无法插入它。
个人而言,我会发现DDT输出记录到一个文本文件的方式,也可能是支持客户端 - 服务器架构,其中客户端工作AJAX请求处理程序中,并将数据发送到服务器?我不知道有什么可能,因为那里有几十个ddt克隆。
真实的,但大多数分析器和调试器使用的头从服务器发送数据到客户端(同时仍保留一个可能的JSON响应)和浏览器扩展,以显示它。已经过了3年,因为您的答案和DDT仍然没有此功能:) – 2014-06-17 14:45:06
我最近遇到这个问题。我的快速而肮脏,但工作的解决方案只是添加一些HTML视图来弯曲相同的代码。 ?
因此,举例来说,如果我能在NewRelic的看到,90%的我的网站的时间在一个AJAX调用/ search_for_book标题是花=,我的代码可能是这样的:
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)
瓶颈将会在代码中的某个地方;我们是否通过Ajax调用它无关诊断其效率低下(在我的情况,至少,因人而异)
我写的可以添加到Django的调试工具栏来查看比当前(包括AJAX请求)等请求Request History Panel for Django Debug Toolbar。
通过PIP安装:
pip install git+https://github.com/djsutho/django-debug-toolbar-request-history.git
在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',
]
录制Ajax请求覆盖DEBUG_TOOLBAR_CONFIG
SHOW_TOOLBAR_CALLBACK
(也在settings.py),例如:
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': 'ddt_request_history.panels.request_history.allow_ajax',
}
不确定为什么,但Chrome扩展似乎无法显示Ajax调用的调试信息(jQuery。get,jQuery.getJson,...) – 2013-11-19 16:31:13
@PetrPeller是否安装了最新的django-debug-panel软件包?点击劫持保护激活时,以前的版本有问题。如果它仍然无法正常工作,可以请您在github上提供更多信息(Django版本,代码示例等) – recamshak 2013-11-20 00:02:07
使用'pip install django-debug-panel'安装...我会尝试调查更多,并让你知道GitHub – 2013-11-20 00:07:39