Coder Social home page Coder Social logo

intrepidclass / django-maintenancemode Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bashu/django-maintenancemode

0.0 0.0 0.0 127 KB

Django-maintenancemode allows you to temporary shutdown your site for maintenance work

License: BSD 3-Clause "New" or "Revised" License

Python 99.30% HTML 0.70%

django-maintenancemode's Introduction

django-maintenancemode

https://coveralls.io/repos/github/shanx/django-maintenancemode/badge.svg?branch=develop

django-maintenancemode is a middleware that allows you to temporary shutdown your site for maintenance work.

Logged in users having staff credentials can still fully use the site as can users visiting the site from an IP address defined in Django's INTERNAL_IPS.

Authored by Remco Wendt, and some great contributors.

How it works

maintenancemode works the same way as handling 404 or 500 error in Django work. It adds a handler503 which you can override in your main urls.py or you can add a 503.html to your templates directory.

  • If user is logged in and staff member, the maintenance page is not displayed.

  • If user's IP is in INTERNAL_IPS, the maintenance page is not displayed.

  • To override the default view which is used if the maintenance mode is enabled you can simply define a handler503 variable in your ROOT_URLCONF, similar to how you would customize other error handlers, e.g. :

    handler503 = 'example.views.maintenance_mode'

Installation

  1. Either checkout maintenancemode from GitHub, or install using pip :

    pip install django-maintenancemode
  2. Add maintenancemode to your INSTALLED_APPS :

    INSTALLED_APPS = (
        ...
        'maintenancemode',
    )
  3. Add MaintenanceModeMiddleware to MIDDLEWARE_CLASSES, make sure it comes after AuthenticationMiddleware :

    MIDDLEWARE_CLASSES = (
        ...
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'maintenancemode.middleware.MaintenanceModeMiddleware',
    )
  4. Add variable called MAINTENANCE_MODE in your project's settings.py file :

    MAINTENANCE_MODE = True  # Setting this variable to ``True`` activates the middleware.

    or set MAINTENANCE_MODE to False and use maintenance command :

    python ./manage.py maintenance <on|off>

Please see example application. This application is used to manually test the functionalities of this package. This also serves as a good example...

You need only Django 1.4 or above to run that. It might run on older versions but that is not tested.

Configuration

There are various optional configuration options you can set in your settings.py

# Enable / disable maintenance mode.
# Default: False
MAINTENANCE_MODE = True  # or ``False`` and use ``maintenance`` command

# Sequence of URL path regexes to exclude from the maintenance mode.
# Default: ()
MAINTENANCE_IGNORE_URLS = (
    r'^/docs/.*',
    r'^/contact'
)

License

django-maintenancemode is released under the BSD license.

django-maintenancemode's People

Contributors

bashu avatar jezdez avatar shanx avatar c-goosen avatar matthiask avatar thanosd avatar abhaga avatar tijuca avatar spielmannj avatar kaysackey avatar kitterma avatar kishorkunal-raj avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.