Ale*_*and 129 python django django-debug-toolbar
我看了其他问题但无法弄明白......
我做了以下安装django-debug-toolbar:
Run Code Online (Sandbox Code Playgroud)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', # Uncomment the next line for simple clickjacking protection: # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', )
3添加了INTERNAL_IPS:
INTERNAL_IPS =('174.121.34.187',)
4为已安装的应用添加了debug_toolbar
我没有收到任何错误或任何内容,工具栏不显示在任何页面上,甚至不显示管理员.
我甚至将debug_toolbar模板的目录添加到了我的目录中 TEMPLATE_DIRS
Chr*_*att 165
愚蠢的问题,但你没有提到它,所以... DEBUG设置的是什么?它不会加载,除非它是True.
如果它仍然无法正常工作,请尝试添加"127.0.0.1" INTERNAL_IPS.
UPDATE
这是最后一搏,努力的举动,你不应该有这样做,但它清楚地表明,如果有一些只是配置问题,或者是否有一些更大的问题.
将以下内容添加到settings.py:
def show_toolbar(request):
return True
SHOW_TOOLBAR_CALLBACK = show_toolbar
Run Code Online (Sandbox Code Playgroud)
这将有效地删除调试工具栏的所有检查,以确定它是否应该加载自身; 它总会加载.只有将其保留用于测试目的,如果您忘记并使用它启动,所有访问者也将看到您的调试工具栏.
有关显式配置,请参阅此处的官方安装文档.
编辑(2015年6月17日):
显然核选项的语法已经改变.它现在在自己的字典中:
def show_toolbar(request):
return True
DEBUG_TOOLBAR_CONFIG = {
"SHOW_TOOLBAR_CALLBACK" : show_toolbar,
}
Run Code Online (Sandbox Code Playgroud)
他们的测试使用这本字典.
tim*_*haw 78
调试工具栏需要在INTERNAL_IPS设置中设置request.META ['REMOTE_ADDR']中的IP地址.在您的一个视图中输入print语句,如下所示:
print("IP Address for debug-toolbar: " + request.META['REMOTE_ADDR'])
Run Code Online (Sandbox Code Playgroud)
然后加载该页面.确保IP在settings.py中的INTERNAL_IPS设置中.
一般情况下我认为你将能够通过查看您的计算机的IP地址很容易地确定地址,但对我来说,我在运行端口转发虚拟盒服务器...谁知道发生了什么.尽管在VB或我自己的操作系统的ifconfig没有看到它的任何地方,即在REMOTE_ADDR关键露面的IP是什么呀激活工具栏的伎俩.
use*_*050 46
如果其他一切都很好,也可能是你的模板没有明确的结束<body>标记 -
注意:如果响应的mimetype是text/html或application/xhtml + xml并且包含结束标记,则调试工具栏将仅显示自身.
don*_*ner 26
当前稳定版本0.11.0要求显示工具栏以下内容:
设置文件:
DEBUG = TrueINTERNAL_IPS包括您的浏览器IP地址,而不是服务器地址.如果在本地浏览应该是INTERNAL_IPS = ('127.0.0.1',).如果远程浏览只需指定您的公共地址.INSTALLED_APPS = (..., 'debug_toolbar',) MIDDLEWARE_CLASSES = ('debug_toolbar.middleware.DebugToolbarMiddleware', ...).它应该尽早放在列表中.模板文件:
text/html</html>标记静态文件:
如果您正在提供静态内容,请确保通过执行以下操作来收集css,js和html:
./manage.py collectstatic
Run Code Online (Sandbox Code Playgroud)
关于即将发布的django-debug-toolbar版本的注意事项
较新的开发版本为设置点2,3和4添加了默认设置,这使得生活更简单,但是,与任何开发版本一样,它有bug.我发现git的最新版本ImproperlyConfigured在运行nginx/uwsgi时导致错误.
无论哪种方式,如果你想从github运行安装最新版本:
pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git#egg=django-debug-toolbar
Run Code Online (Sandbox Code Playgroud)
您还可以通过执行以下操作克隆特定提交:
pip install -e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git@ba5af8f6fe7836eef0a0c85dd1e6d7418bc87f75#egg=django_debug_toolbar
Run Code Online (Sandbox Code Playgroud)
Ano*_*oyz 20
我尝试了一切,从设置DEBUG = True,设置INTERNAL_IPS到客户端的IP地址,甚至手动配置Django调试工具栏(请注意,最新版本会自动进行所有配置,例如添加中间件和URL).在远程开发服务器中没有任何工作(尽管它确实在本地工作).唯一有用的是按如下方式配置工具栏:
DEBUG_TOOLBAR_CONFIG = {
"SHOW_TOOLBAR_CALLBACK" : lambda request: True,
}
Run Code Online (Sandbox Code Playgroud)
这将替换决定是否应显示工具栏的默认方法,并始终返回true.
Cés*_*sar 14
我的工具栏工作得很完美.使用此配置:
DEBUG = TrueINTERNAL_IPS = ('127.0.0.1', '192.168.0.1',)DEBUG_TOOLBAR_CONFIG = {'INTERCEPT_REDIRECTS': False,}MIDDLEWARE_CLASSES:Run Code Online (Sandbox Code Playgroud)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', )
我希望它有所帮助
Bas*_*ans 12
10.0.2.2在Windows上添加到INTERNAL_IPS,它在内部与vagrant一起使用
INTERNAL_IPS =('10 .0.2.2',)
这应该工作.
如果您要在具有docker的Docker容器中使用Django服务器进行开发,则启用工具栏的说明无效。原因与以下事实有关:您需要添加的实际地址将INTERNAL_IPS是动态的,例如172.24.0.1。而不是尝试动态设置的值INTERNAL_IPS,直接的解决方案是替换您的中启用工具栏的功能,settings.py例如:
DEBUG_TOOLBAR_CONFIG = {
'SHOW_TOOLBAR_CALLBACK': lambda _request: DEBUG
}
Run Code Online (Sandbox Code Playgroud)
这也应该适用于其他动态路由情况,例如无业游民。
这里有一些好奇的细节。django_debug_tool中的确定是否显示工具栏的代码检查如下值REMOTE_ADDR:
if request.META.get('REMOTE_ADDR', None) not in INTERNAL_IPS:
return False
Run Code Online (Sandbox Code Playgroud)
因此,如果REMOTE_ADDR由于动态docker路由而实际上不知道的值,则该工具栏将无法工作。您可以使用docker network命令查看动态IP值,例如docker network inspect my_docker_network_name
我知道这个问题有点老了,但今天我用 docker 安装了 django-toolbar 并遇到了同样的问题,这为我解决了
INTERNAL_IPS = ["127.0.0.1", "10.0.2.2"]
import socket
hostname, _, ips = socket.gethostbyname_ex(socket.gethostname())
INTERNAL_IPS += [".".join(ip.split(".")[:-1] + ["1"]) for ip in ips]
Run Code Online (Sandbox Code Playgroud)
正如我在评论中读到的,问题是 docker 使用动态 ip,为了解决这个问题,我们可以从上面的代码中获取 ip
| 归档时间: |
|
| 查看次数: |
49638 次 |
| 最近记录: |