I think the easiest way will be to modify your WSGI file (which you can get to from the link on the the "Web" tab).
Right now, you'll have code to load up Django, which will look something like this:
import os
import sys
# assuming your django settings file is at '/home/giles/mysite/mysite/settings.py'
# and your manage.py is is at '/home/giles/mysite/manage.py'
path = '/home/giles/mysite'
if path not in sys.path:
sys.path.append(path)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
# then:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
What you'll need to do is comment it out, and then add code like this underneath -- it's raw WSGI code that will just respond to every request with a "site down for maintenance" response:
def application(environ, start_response):
status = '200 OK'
content = "Site down for maintenance"
response_headers = [('Content-Type', 'text/html'), ('Content-Length', str(len(content)))]
start_response(status, response_headers)
yield content.encode('utf8')
Once you're done that, reload the site from the "Web" page and check it to make sure that it's working the way you want. You can modify what it displays by changing the content
string -- just put any HTML you like in there.
To get back to showing your site when you're done, just delete (or comment out) the raw WSGI code, and uncomment your Django code.