Installation & configuration¶
Requirements¶
Django HTTP Proxy should be compatible with any Python 2.x version from 2.5 and up and a relatively recent version of Django. It is compatible with Django 1.7.
Installation¶
The easiest way to install the latest version of Django HTTP Proxy is using pip:
$ pip install django-http-proxy
Alternatively, you can manually download the package from the Python Package Index or from the Github repository.
Next, you need to add “httpproxy” to the INSTALLED_APPS list in your Django settings module (typically settings.py):
INSTALLED_APPS = (
...
'httpproxy',
)
Finally, install the database tables:
$ python manage.py syncdb
Note
If you are only interested in using Django HTTP Proxy as a live proxy and don’t care about recording/playing back requests and responses, simply do not add it to your INSTALLED_APPS and no database tables will be created.
Configuration¶
The core of Django HTTP Proxy is a class-based Django view, httpproxy.views.HttpProxy.
To use Django HTTP Proxy, you create an entry in your urls.py that forwards requests to the HttpProxy view class, e.g.:
from httpproxy.views import HttpProxy
urlpatterns += patterns('',
(r'^proxy/(?P<url>.*)$',
HttpProxy.as_view(base_url='http://www.python.org/')),
)
Given the above url config, request matching /proxy/<any-url> will be handled by the configured HttpProxy view instance and forwarded to http://www.python.org/<any-url>.
Note
Older versions of Django HTTP Proxy only supported a single proxy per Django project, which had to be configured using a Django setting:
PROXY_BASE_URL = 'http://www.python.org/'
Naturally, you can easily replicate this behavior using the new class-based view syntax:
from django.conf import settings
from httpproxy.views import HttpProxy
urlpatterns += patterns('',
(r'^proxy/(?P<url>.*)$',
HttpProxy.as_view(base_url=settings.PROXY_BASE_URL)),
)