您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

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

如何使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 true

DEBUG_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)
python 2022/1/1 18:44:02 有561人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶