我安装 django-debug-toolbar 3.2.2 并通过安装 Django 调试工具栏逐步配置它
\n
我的模板只是hello.html
<html>\n <body>\n <h1>Hello {{ name }}</h1>\n </body>\n</html>\n\nRun Code Online (Sandbox Code Playgroud)\n最后,当我输入python manage.py runserver\nDjango调试工具栏不显示。\n但在控制台中我看到这个
\nLoading module from \xe2\x80\x9chttp://127.0.0.1:8000/static/debug_toolbar/js/toolbar.js\xe2\x80\x9d was blocked because of a disallowed MIME type (\xe2\x80\x9ctext/plain\xe2\x80\x9d).
这是怎么回事?
\n我正在使用Django 1.7.7.我安装了调试工具栏:
pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git#egg=django-debug-toolbar
Run Code Online (Sandbox Code Playgroud)
我遵循了本页的先决条件.
设置完所有后我得到错误:
django.core.exceptions.ImproperlyConfigured: Error importing debug panel debug_toolbar.panels.templates: "No module named engine"
Run Code Online (Sandbox Code Playgroud) 我点击像"请求"这样的面板时,我的Django-Debug-Toolbar会产生一个Http404.我多次检查了我的配置,但找不到什么错误.
版本:
settings.py
# DEBUG TOOLBAR
if DEBUG:
def custom_show_toolbar(request):
""" Only show the debug toolbar to users with the superuser flag. """
#return request.user.is_superuser
if request.is_ajax():
return False
return True
MIDDLEWARE += (
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
INSTALLED_APPS += (
'debug_toolbar',
)
INTERNAL_IPS = ('127.0.0.1', )
DEBUG_TOOLBAR_CONFIG = {
'INTERCEPT_REDIRECTS': False,
'SHOW_TOOLBAR_CALLBACK': 'core.settings.custom_show_toolbar',
'HIDE_DJANGO_SQL': True,
'TAG': 'body',
'SHOW_TEMPLATE_CONTEXT': True,
'ENABLE_STACKTRACES': True,
}
Run Code Online (Sandbox Code Playgroud)
urls.py
urlpatterns = [
url(r'^$', core_views.home, name='home'),
#url(r'^login/$', auth_views.login, name='login'),
#url(r'^logout/$', auth_views.logout, name='logout'), …Run Code Online (Sandbox Code Playgroud) 调试工具栏不会显示返回HttpResponse()而不是render_to_response()的视图.
一个视图return HttpResponse()(为了测试)不会显示调试工具栏..
我有一个小测试项目,我总是在我的开发应用程序之前安装和测试包.由于我在其上安装了django调试工具栏,因此在连接到管理站点时出现以下错误消息(其他网址很好):
NoReverseMatch at /admin/
Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': 'auth'}' not found. 0 pattern(s) tried: []
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/
Django Version: 1.8
Exception Type: NoReverseMatch
Exception Value:
Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': 'auth'}' not found. 0 pattern(s) tried: []
Exception Location: C:\Anaconda\lib\site-packages\django-1.8-py2.7.egg\django\core\urlresolvers.py in _reverse_with_prefix, line 436
Python Executable: C:\Anaconda\python.exe
Python Version: 2.7.6
Python Path:
['C:\\Users\\ut1u3h\\test_project',
'C:\\Anaconda\\lib\\site-packages\\django-1.8-py2.7.egg',
'C:\\Anaconda\\lib\\site-packages\\django_rosetta-0.7.5-py2.7.egg',
'C:\\Anaconda\\lib\\site-packages\\django_debug_toolbar-1.1-py2.7.egg',
'C:\\Anaconda\\lib\\site-packages\\sqlparse-0.1.11-py2.7.egg',
'C:\\Anaconda\\python27.zip',
'C:\\Anaconda\\DLLs',
'C:\\Anaconda\\lib',
'C:\\Anaconda\\lib\\plat-win',
'C:\\Anaconda\\lib\\lib-tk',
'C:\\Anaconda', …Run Code Online (Sandbox Code Playgroud) 我正在努力开始django-debug-toolbar工作。我已按照安装步骤进行操作,并获得了包含统计信息的侧边栏(例如 2.75 毫秒内的 SQL 1 查询、使用的静态文件 19 个文件、12 个信号的 30 个接收器),这些统计信息似乎是合法的并表明其正在工作。
但是,当我在给定选项卡上单击“获取更多信息”时,我会在浏览器中收到 404 错误,并在控制台中收到此类信息:
"GET /__debug__/render_panel/?store_id=ac74875cfe864b2dab4c6d17c1d1ed5d&panel_id=RequestPanel HTTP/1.1" 404 1791"
Run Code Online (Sandbox Code Playgroud)
网站上的其他页面可以正常工作。
我尝试过各种配置urls.py。这是我目前拥有的:
from __future__ import absolute_import, unicode_literals
from django.conf import settings
from django.conf.urls import include, url
from django.contrib import admin
from wagtail.wagtailadmin import urls as wagtailadmin_urls
from wagtail.wagtailcore import urls as wagtail_urls
from wagtail.wagtaildocs import urls as wagtaildocs_urls
from search import views as search_views
urlpatterns = [
url(r'^django-admin/', include(admin.site.urls)),
url(r'^admin/', include(wagtailadmin_urls)),
url(r'^documents/', include(wagtaildocs_urls)),
url(r'^search/$', search_views.search, …Run Code Online (Sandbox Code Playgroud) 我想优化 django 应用程序,为此我想知道如何检查我的查询是否正在访问数据库,或者我是否从缓存版本中获取结果/返回值?
例如:
products = Products.objects.filter(product_name__icontains="natural")
if not products.exist():
return Response(...)
total_products = products.count()
first_product = product.first()
Run Code Online (Sandbox Code Playgroud)
我喜欢在 shell 中执行它,并想检查哪一行访问了数据库,哪一行只从缓存版本返回结果,以便我可以在我的视图中编写优化的查询。
我知道 django-toolbar 但我找不到它是否支持这样的东西(某些行命中数据库或结果是否来自缓存版本)。
问候。
python django django-queryset django-debug-toolbar django-rest-framework