Web apps on PythonAnywhere are load-balanced across a cluster of machines. This means that when you access the remote_addr field, which is where the client IP address normally goes, you'll get the internal IP address of the load-balancer.
Our loadbalancer puts the real IP address that we received the request from into the X-Real-IP header, which you can access like this in Flask:request.headers['X-Real-IP']
...and like this in Django:request.META.get('HTTP_X_REAL_IP')