标签: django-debug-toolbar

如何在执行时间方面描述django应用程序?

我的Django应用程序非常慢,我想知道花时间:

我试过Django-debug-toolbar但是找不到可以让我分解加载时间的面板.

我的要求:

  • 堆栈跟踪类型输出,每个模块的执行时间被调用以呈现页面.
  • 我想知道整个页面渲染过程的哪一部分花时间?
  • 另外,哪些部分消耗了多少CPU [最重要]?

django-debug-toolbar做到吗?[什么小组?]

任何其他可以做到这一点的django-app?

python django performance cpu-speed django-debug-toolbar

11
推荐指数
2
解决办法
7551
查看次数

Django v1.6调试工具栏中间件错误号.rsplit()

我正在尝试使用django-debug-toolbar和我的django应用程序,它适用于django v1.5.但是,我正在尝试将系统迁移到django v1.6,并且当我尝试加载任何页面时它会生成以下错误.

python manage.py runserver
Validating models...

0 errors found
December 21, 2013 - 22:53:18
Django version 1.6.1, using settings 'MySite.settings'
Starting development server at http://XXX.XXX.XXX.XXX:XXXX/
Quit the server with CONTROL-C.
Internal Server Error: /
Traceback (most recent call last):
  File "/home/user/django-env/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 90, in get_response
response = middleware_method(request)
  File "/home/user/django-env/local/lib/python2.7/site-packages/debug_toolbar/middleware.py", line 45, in process_request
mod_path, func_name = func_path.rsplit('.', 1)
AttributeError: 'function' object has no attribute 'rsplit'
[21/Dec/2013 22:53:21] "GET / HTTP/1.1" 500 58172
Run Code Online (Sandbox Code Playgroud)

源代码有这个注释,但我不确定它们的含义是什么(import_by_path):

def process_request(self, …
Run Code Online (Sandbox Code Playgroud)

django python-2.7 django-debug-toolbar django-1.6

11
推荐指数
1
解决办法
2662
查看次数

Django调试工具栏设置

我刚刚安装了Django调试工具栏.它有点繁琐,虽然它正在工作,我想检查这是否是正确的方法.以下是我取得成功所需的4个步骤:

  1. easy_install django_debug_toolbar
  2. 在我的项目设置中添加'debug_toolbar.middleware.DebugToolbarMiddleware'到我的中间件类的末尾
  3. 在我的django.global_settings.py中编辑INTERNAL_IPS =('127.0.0.1')
  4. 然后我在项目设置中将"/usr/local/lib/python2.7/dist-packages/django_debug_toolbar-0.8.5-py2.7.egg/debug_toolbar/templates"添加到我的TEMPLATE_DIRS.

这主要是反复试验,所以我不确定这是怎么回事.我非常不确定第4步是否必要......

任何输入都将非常感激

python django django-debug-toolbar

10
推荐指数
1
解决办法
4642
查看次数

Django-debug-toolbar-line-profiler只显示一行输出,没有内容

我有一个Raspberry Pi坐在一个偏远的位置.它连接到一个小型自制电路和温度探头.我已经设置了Raspberry Pi来做一些事情:

  • cron每小时运行一次作业以获取温度读数并将其本地存储到sqlite数据库
  • 运行Nginx Web服务器
  • 运行uwsgi应用程序服务器
  • 提供一个简单的Django应用程序

在那个Django应用程序中,我有一个简单的视图,执行以下操作:

  1. 点击DB获取最后300次温度记录
  2. 把它们放进熊猫里 DataFrame
  3. 使用Matplotlib生成最近温度历史的一个很好的SVG图
  4. 填写一个显示SVG的简单模板,以及最近温度读数的小型HTML表格.

渲染此视图大约需要30秒.很长一段时间.所以我想看看花了这么长时间.我的猜测是,所有与生成图形相关的工作.但要找出答案,我想做一些剖析.

我安装django-debug-toolbardjango-debug-toolbar-line-profiler使用了pip.

我已按照我理解的最佳文档配置它们.特别是,我已经设定:

DEBUG = True
TEMPLATE_DEBUG = DEBUG
DEBUG_TOOLBAR_PATCH_SETTINGS = False

MIDDLEWARE_CLASSES = (
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    # Uncomment the next line for simple clickjacking protection:
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.versions.VersionsPanel',
    'debug_toolbar.panels.timer.TimerPanel',
    'debug_toolbar.panels.settings.SettingsPanel',
    'debug_toolbar.panels.headers.HeadersPanel',
    'debug_toolbar.panels.sql.SQLPanel',
    'debug_toolbar.panels.staticfiles.StaticFilesPanel',
    'debug_toolbar.panels.templates.TemplatesPanel',
    'debug_toolbar.panels.cache.CachePanel',
    'debug_toolbar.panels.signals.SignalsPanel',
    'debug_toolbar.panels.logging.LoggingPanel',
    'debug_toolbar.panels.redirects.RedirectsPanel',

    'debug_toolbar_line_profiler.panel.ProfilingPanel',
)
Run Code Online (Sandbox Code Playgroud)

另外,INTERNAL_IPS也设置得当.

我使用基于类的视图构建了我的视图.它看起来像这样:

from django.views.generic import TemplateView
from XXXX.models import TempReading, …
Run Code Online (Sandbox Code Playgroud)

python django profiling django-debug-toolbar raspberry-pi

10
推荐指数
1
解决办法
1384
查看次数

Django Rest Framework调试发布和放置请求

我使用DRF扩展来获取模型的se json列表,并且我可以使用debug-toolbarGET请求进行调试,但是我如何调试POSTPUT请求?

我有这个用于调试模式的设置:

INSTALLED_APPS += ('debug_toolbar',)

MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)

DEBUG_TOOLBAR_PATCH_SETTINGS = False
INTERNAL_IPS = (
    '127.0.0.1'
)
Run Code Online (Sandbox Code Playgroud)

现在,当我Intercept redirects在调试工具栏中尝试时,它不会显示我的工具栏POST.

django django-debug-toolbar django-rest-framework

10
推荐指数
3
解决办法
9634
查看次数

Django调试工具栏仅适用于管理员部分

嘿,我已经使用Django 1.2.1已经有一段时间了,前几天遇到了Django Debug Toolbar.它看起来非常有用,我真的很想尝试一些东西.

我安装了自述文件.一步步.我把中间件放在最后以防万一,但是我使用的是相当标准的中间件(常见的,会话,auth和csrf).但是,它不会显示在我的任何页面上.我试过移动中间件,但效果相同.

好像我安装错了.但是,当我加载django的Admin部分时,工具栏会弹出.我不确定我做错了什么.我的页面内容能否影响工具栏?它输出的是mime text/html ...

无论如何,非常感谢任何帮助.提前致谢.

这是我的Settings.py:pastebin.com/Hu8TgANt

python django django-debug-toolbar

9
推荐指数
2
解决办法
4077
查看次数

Django调试工具栏不显示SQL

我最近安装了django-debug-toolbar.工具栏工作,我可以看到侧面的标签.但是,即使我明显执行了SQL查询(例如在管理员中),SQL选项卡中也没有显示任何内容: 在此输入图像描述

我的设置如下:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2'
        'NAME': 'mydatabase'
         ....
    }
}

# Backwards compatability with apps
DATABASE_ENGINE = DATABASES['default']['ENGINE'].split('.')[-1]
DATABASE_NAME = DATABASES['default']['NAME']

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'debug_toolbar.middleware.DebugToolbarMiddleware',
)

INSTALLED_APPS = (
    ...
    'debug_toolbar',
    ...
)

# Settings for the django-debug-toolbar
DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.cache.CacheDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.signals.SignalDebugPanel',
    # 'debug_toolbar.panels.logger.LoggingPanel',
)

def custom_show_toolbar(request):
    return request.user.is_staff

DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS':False,
    'SHOW_TOOLBAR_CALLBACK':custom_show_toolbar,
    'SHOW_TEMPLATE_CONTEXT':True,
    'HIDE_DJANGO_SQL':False,
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Django 1.3和工具栏版本0.8.5.对这个问题的任何帮助都会很棒......

编辑: 根据答案,我决定发布我如何处理我的视图功能:

def func1(query, …
Run Code Online (Sandbox Code Playgroud)

django django-debug-toolbar django-1.3

9
推荐指数
2
解决办法
3851
查看次数

无法让django-debug-toolbar出现

无论我做什么,我都无法让django-debug-toolbar出现.我已经尝试了在这个问题的每个答案中建议的一切.

  • 我有DEBUG=True我的设置
  • 我有django.contrib.staticfilesdebug_toolbarINSTALLED_APPS
  • 'debug_toolbar.middleware.DebugToolbarMiddleware'高兴了MIDDLEWARE_CLASSES
  • 我有INTERNAL_IPS = ()我的设置
  • 我尝试print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR'])在视图中添加,然后打印出来IP Address for debug-toolbar: 127.0.0.1
  • </body></html>我的模板结束了
  • 我已经pip install django-debug-toolbar在我的virtualenv中运行,没有任何问题
  • 我已经运行python manage.py collectstaticdebug_toolbar,我的静态文件中有一个目录

当我运行应用程序时,我在控制台中看不到包含django_debug_toolbar的任何URL的请求,因此我怀疑它是未加载的应用程序.

我也没有在开发者控制台中看到任何失败的请求.

我已经阅读了django-debug-toolbar安装文档,但我没有想法.

有人有任何调试建议吗?我正在运行OSX和Django 1.7.好奇的是调试工具栏看起来很好 - 我想我做了一些调整导致它消失,但我不知道是什么.

更新:我甚至尝试在我的设置文件中添加它,这应该强制显示工具栏:

def show_toolbar(request):
    return True
SHOW_TOOLBAR_CALLBACK = show_toolbar
Run Code Online (Sandbox Code Playgroud)

但它没有帮助.

我也尝试在我的视图中抛出一个故意的异常,这样我就可以检查DEBUG是否已打开,所有设置如上所述.他们是,仍然没有工具栏!

更新2:当我设置时INTERNAL_IPS=('127.0.0.1',),我开始在控制台中看到调试工具栏请求,但页面上没有工具栏.

以下HTML出现在我的页面中 - 因此工具栏就在那里,但它不可见,因为它已经display=none遍布它:

在此输入图像描述

django django-debug-toolbar

9
推荐指数
3
解决办法
5772
查看次数

如何调试 Django 请求“POST /url/ HTTP/1.1”400

我正在使用 django + django-rest-framework

我正在从 ios 应用程序向本地 python 服务器发送 POST 请求,并收到 400 错误代码。我发现问题出在我发送的 json 正文中,我想在某个地方输出完整的 POST 请求,但我没有运气。

[13/Jan/2016 22:48:45] "POST /url/ HTTP/1.1" 400 75
Run Code Online (Sandbox Code Playgroud)

我不明白如何在运行服务器后打印任何内容(最简单的方法)。有可能吗?

我尝试在设置中启用日志记录,但也没有成功。

LOGGING = {
    'version': 1,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.request': {
            'handlers':['console'],
            'propagate': True,
            'level':'DEBUG',
        }
    },
}

import logging.config
logging.config.dictConfig(LOGGING)
Run Code Online (Sandbox Code Playgroud)

我还安装了django 调试工具栏,但它也不显示我发送的请求。我也尝试返回 HttpResponse 但仍然没有得到 POST 请求数据。

在 django 或 django-rest-framework 中输出请求数据(控制台、文件或其他任何内容)的方法是什么?

固定的:

我在views.py中添加了中间件,它扩展了我的控制台输出,如下所示:

class ExceptionLoggingMiddleware(object):
def process_request(self, request):
    print request.body
    print request.scheme
    print request.method
    print …
Run Code Online (Sandbox Code Playgroud)

python django django-debug-toolbar django-rest-framework

9
推荐指数
1
解决办法
9374
查看次数

Django 调试工具栏:如何分析文件下载?

我的 Django webapp 允许用户下载动态生成的文本文件:

response = HttpResponse(my_file_contents)
response['Content-Disposition'] = 'attachment; filename="my file.txt"'
return response
Run Code Online (Sandbox Code Playgroud)

我安装了 Django 调试工具栏(0.11.0,因为我无法让 1.0.1 工作),但是当我点击进行下载时,工具栏没有显示有关已下载文件的信息,大概是因为那是一个单独的页面/请求(或者可能因为它是一个非 HTML 文件)。下载的文件也不包含任何调试信息。

如何分析此文件下载的性能?

python django django-debug-toolbar

6
推荐指数
2
解决办法
287
查看次数