随处可见的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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)