如何使django-debug-toolbar仅显示在python托管的ip地址上的任何地方?

如何使django-debug-toolbar仅显示在python托管的ip地址上的任何地方?,第1张

如何使django-debug-toolbar仅显示在python托管的ip地址上的任何地方?

随处可见的Python在标头中设置自定义定义

HTTP_X_REAL_IP

这是pythonanywhere接收请求的IP地址,似乎最适合获取实际的客户端IP。

您还可以使用HTTP_X_FORWARDED_FOR,但从理论上讲,如果传入请求在到达pythonAnywhere之前经过某种代理,则它可能包含一组不同的IP地址。

为此,有两种选择。

首先,您可以将其添加到settings.py

def custom_show_toolbar(request.meta.get('HTTP_X_REAL_IP', None) in INTERNAL_IPS):    return True # Show toolbar, if the IP returned from HTTP_X_REAL_IP IS listed as INTERNAL_IPS in settings    if request.is_ajax():        return False# Show toolbar, if the request is not ajax    return bool(settings.DEBUG)# show toolbar if debug is trueDEBUG_TOOLBAR_ConFIG = {    'SHOW_TOOLBAR_CALLBACK': custom_show_toolbar,}

或者,您可以修改django-debug-toolbar文件夹中的文件middleware.py,并更改以下代码:

def show_toolbar(request):    """    Default function to determine whether to show the toolbar on a given page.    """    if request.meta.get('REMOTE_ADDR', None) not in settings.INTERNAL_IPS:        return False    if request.is_ajax():        return False    return bool(settings.DEBUG)

至:

def show_toolbar(request):    """    Default function to determine whether to show the toolbar on a given page.    """    if request.meta.get('HTTP_X_REAL_IP', None) not in settings.INTERNAL_IPS:        return False    if request.is_ajax():        return False    return bool(settings.DEBUG)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5668379.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存