我的Django应用程序非常慢,我想知道花时间:
我试过Django-debug-toolbar但是找不到可以让我分解加载时间的面板.
我的要求:
能django-debug-toolbar做到吗?[什么小组?]
任何其他可以做到这一点的django-app?
我正在尝试使用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调试工具栏.它有点繁琐,虽然它正在工作,我想检查这是否是正确的方法.以下是我取得成功所需的4个步骤:
这主要是反复试验,所以我不确定这是怎么回事.我非常不确定第4步是否必要......
任何输入都将非常感激
我有一个Raspberry Pi坐在一个偏远的位置.它连接到一个小型自制电路和温度探头.我已经设置了Raspberry Pi来做一些事情:
cron每小时运行一次作业以获取温度读数并将其本地存储到sqlite数据库在那个Django应用程序中,我有一个简单的视图,执行以下操作:
DataFrame渲染此视图大约需要30秒.很长一段时间.所以我想看看花了这么长时间.我的猜测是,所有与生成图形相关的工作.但要找出答案,我想做一些剖析.
我安装django-debug-toolbar并django-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) 我使用DRF扩展来获取模型的se json列表,并且我可以使用debug-toolbar该GET请求进行调试,但是我如何调试POST和PUT请求?
我有这个用于调试模式的设置:
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 1.2.1已经有一段时间了,前几天遇到了Django Debug Toolbar.它看起来非常有用,我真的很想尝试一些东西.
我安装了自述文件.一步步.我把中间件放在最后以防万一,但是我使用的是相当标准的中间件(常见的,会话,auth和csrf).但是,它不会显示在我的任何页面上.我试过移动中间件,但效果相同.
好像我安装错了.但是,当我加载django的Admin部分时,工具栏会弹出.我不确定我做错了什么.我的页面内容能否影响工具栏?它输出的是mime text/html ...
无论如何,非常感谢任何帮助.提前致谢.
这是我的Settings.py:pastebin.com/Hu8TgANt
我最近安装了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-debug-toolbar出现.我已经尝试了在这个问题的每个答案中建议的一切.
DEBUG=True我的设置django.contrib.staticfiles和debug_toolbar在INSTALLED_APPS'debug_toolbar.middleware.DebugToolbarMiddleware'高兴了MIDDLEWARE_CLASSESINTERNAL_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 collectstatic了debug_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-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) 我的 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 文件)。下载的文件也不包含任何调试信息。
如何分析此文件下载的性能?
django ×10
python ×6
cpu-speed ×1
django-1.3 ×1
django-1.6 ×1
performance ×1
profiling ×1
python-2.7 ×1
raspberry-pi ×1