DJP: Django Plugins

A plugin system for Django, based on Pluggy.

See DJP: A plugin system for Django for an introduction to this project.

Why plugins?

Django has long promoted the idea of reusable apps, and there is a thriving ecosystem of open source extensions to the framework.

Many of these require the user to manually configure them, by modifying their settings.py to add new strings to INSTALLED_APPS or MIDDLEWARE, or by adding new entries to their URL configuration.

DJP addresses this limitation: you can configure DJP once for a project, after which any DJP-compliant plugins you install will be able to automatically modify your Django configuration to enable their functionality.

Available plugins

django-plugin-django-header is an example plugin that adds a Django-Composition HTTP header to every HTTP response containing the name of a random composition by Django Reinhardt.

django-plugin-blog implements a full blog application for Django, with entries and tags and an Atom feed and a configured Django admin interface. Installing this plugin adds the blog under the /blog/ URL path.

django-plugin-database-url configures Django to connect to the database defined by the DATABASE_URL environment variable.

django-plugin-datasette adds a Datasette instance to Django, providing a read-only UI and JSON API for exploring data in any SQLite databases configured using Django’s DATABASES setting.

Documentation