Skip to content

Latest commit

 

History

History
674 lines (500 loc) · 53.3 KB

README.md

File metadata and controls

674 lines (500 loc) · 53.3 KB

Repository Build status license

If you find Awesome Django useful, please consider donating to help maintain it. Thank you!

A curated list of awesome Django apps, projects and resources.

Q: What is an awesome Django package?

A: An awesome package is one that is mature (not recently released), is well maintained, has a good amount of users, has good documentation, follows the best practices, and which latest release is less than 1 year old. Awesome Django packages and projects are the ones that inspire and serve as examples.

Twitter feed: twitter.com/AwesomeDjango

Admin interface

Packages that extend the Admin interface, adding or improving features.

Analytics

Packages that do web analytics or integrate web analytics services.

  • django-analytical - Integrates analytics services with a generic interface, templates stay clean.

Asset Management

Packages that help manage the static assets of a project.

  • django-compressor - Compresses linked and inline JavaScript or CSS into a single cached file.
  • django-gears - Compiles and concatenates JavaScript and CSS assets.
  • django-htmlmin - HTML minifier for Python with full support for HTML 5 and Django.
  • django-pipeline - Asset packaging for Django.
  • django-systemjs - Django SystemJS brings the JavaScript of tomorrow to Django, today. (JSPM integration in Django)
  • django-webpack-loader - Transparent webpack integration for django.
  • python-webpack - Python bindings for webpack with django integration.
  • django-webpacker - A django compressor tool which bundles CSS, JS files to a single CSS, JS file with webpack and updates your HTML files with respective CSS, JS file path.

Authentication

Packages that improve or extend the authentication methods of Django.

  • django-allauth - Integrated set of Django applications addressing authentication, registration, account management as well as 3rd party (social) account authentication.
  • django-organizations - Multi-user accounts for Django projects.
  • django-otp - A pluggable framework for adding two-factor authentication to Django using one-time passwords.
  • django-registration - Simple user-registration application for Django, designed to make allowing user sign-ups as painless as possible.
  • django-rest-auth - A set of REST API endpoints to handle User Registration and Authentication tasks.
  • django-two-factor-auth - User-friendly Two-Factor authentication.
  • django-userena - Accounts for Django made beautifully simple
  • djoser - REST implementation of Django authentication system.
  • python-social-auth - Python Social Auth is an easy-to-setup social authentication/registration mechanism with support for several frameworks and auth providers.

Authorization

Packages related to authorization infrastructure and permissions.

  • django-guardian - Implementation of per object permissions as authorization backend.
  • django-oauth-toolkit - OAuth2 goodies for the Djangonauts!
  • django-oauth2-provider - Provide OAuth2 access to your app
  • django-oml - Object Moderation Layer, mixin for models that allows you moderate several content types.
  • django-permission An enhanced permission library which enables a logic-based permission system to handle complex permissions in Django
  • django-rules - A tiny but powerful app providing object-level permissions to Django, without requiring a database. At its core, it is a generic framework for building rule-based systems, similar to decision trees. It can also be used as a standalone library in other contexts and frameworks.

Blog Management

Packages to build and manage a blog app.

  • django-blog-zinnia - Simple yet powerful and really extendable application for managing a blog within your Django Web site.

  • puput - A Django blog app implemented in Wagtail.

  • django-blog-it - complete customizable and ready to use blog with one click installer.

Boilerplate

Packages related to starting a new project.

  • cookiecutter - A command-line utility that creates projects from cookiecutters (project templates).
  • django-hackathon-starter - A boilerplate for Django web applications, containing various social authentication methods and several popular API examples.
  • edge - A Django project skeleton that is modern and cutting edge.
  • demo-allauth-bootstrap - Django sample app with users including social auth via Django-AllAuth.

Caching

Packages that help with caching.

Compatibility

Packages that help to keep compatibility of reusable apps between different Django versions.

  • django-compat - Forward and backwards compatibility layer for the officially supported Django versions.
  • django-compat-lint - Check Django compatibility of your code.

CRM

Packages that help to manage business relationships of the organization.

  • Django-CRM - Customer relationship management dashboard where you can manage customers at sales of the organization. It Provides to manage leads information and its activity, track issues from leads, manage contacts to send emails of leads and accounts.

Dashboards

Packages that create information dashboards to visualize data.

  • django-dashing - a customisable, modular dashboard application framework for Django to visualize interesting data about your project. Inspired in the exceptionally handsome dashboard framework Dashing.

Data sciences

Packages that make it easier to work with large volumes of data.

  • rest-pandas - Serves up your Pandas dataframes via the Django REST Framework for use in client-side (i.e. d3.js) visualizations and offline analysis (e.g. Excel).

Database

Packages that add support for 3rd party databases or database specific features.

Debugging

Packages that help hunt down bugs.

  • django-debug-toolbar - A configurable set of panels that display various debug information about the current request/response.
  • django-devserver - A drop in replacement for Django's built-in runserver command.
  • django-querycount - Middleware that Prints the number of DB queries to the runserver console.
  • django-silk - Silky smooth profiling for Django
  • nplusone - Auto-detecting the n+1 queries problem in Django (and other ORMs)
  • sentry - A modern error logging and aggregation platform.
  • django-web-profiler - A django profiling tool which logs, stores debug toolbar statistics and also a set of URL's statistics using a management command.

Email

Packages that help manage email sending.

  • django-celery-email - A Django email backend that uses a celery task for sending the email.
  • django-db-mailer - Django module to easily send email/sms/push/tts using django templates stored on database and managed through the Django Admin.
  • django-drip - Django Admin based management for drip email campaigns
  • django-email-extras - Various email utilities: PGP encryption, multipart templates, web browser test backend.
  • django-email-gateway - A django package which act as a gateway to send emails from SES. Receiving its' corresponding email replys, parsing reply email content with amazon SES.
  • django-mailgun - A Django email backend for Mailgun.
  • django-post_office - A simple app to send and manage your emails in Django, supports templates and can be easily integrated with task queues.
  • django-ses - A Django email backend for Amazon's Simple Email Service.
  • django-spoolgore - A django email backed for the Spoolgore daemon.
  • django-templated-email - Django module to easily send templated emails using django templates, or using a transactional mail provider (mailchimp, silverpop, etc.)
  • django-yubin - django-mailer2 + django-mailviews with some extras.
  • djmail - A simple and nonobstructive django email middleware.
  • djrill - Email backend and new message class for Mandrill transactional email service from MailChimp.

Fields

Packages that extend the functionality of existing field type or add new field types.

File Transfers

Packages that help transfer files between projects and users.

  • django-downloadview - Serve files with Django.
  • django-sendfile - This is a wrapper around web-server specific methods for sending files to web clients.
  • django-filer - Makes multiple files(text/image) uploading easy and provides interface with precise details.

Forms

Packages that extend the functionality of forms or add new types of forms.

  • django-autocomplete-light - django-autocomplete-light's purpose is to enable autocompletes quickly and properly in a django project.
  • django-bootstrap-form - Twitter Bootstrap for Django Form
  • django-bootstrap3 - Use Bootstrap in your Django templates, the Django way.
  • django-crispy-forms - The best way to have DRY Django forms. The app provides a tag and filter that lets you quickly render forms in a div format while providing an enormous amount of capability to configure and control the rendered HTML.
  • django-floppyforms - django-floppyforms is an application that gives you full control of the output of forms rendering. The forms API and features are exactly the same as Django’s, the key difference is that fields and widgets are rendered in templates instead of using string interpolation, giving you full control of the output using Django templates.

GIS

Packages that make it easier to work with geographical information system projects.

Image handling

Packages that help to manipulate, alter, or convert images.

  • django-image-cropping - helper application to easily and non-destructively crop arbitrarily large images in admin and frontend.
  • django-versatileimagefield - A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for quickly creating new images from the one assigned to the field.

Import/Export

  • django-import-export - Django application and library for importing and exporting data with admin integration.

Migrations

Packages that help migrate the database when there are schema updates.

Mobile Support

Packages that help you support for mobile iOS, Android and Others.

  • django-push-notifications - A minimal Django app that implements Device models that can send messages through APNS and GCM.
  • django-pushy - Django app that provides push notifications functionality with celery. The main purpose of this app is to help you send push notifications to your users at scale. If you have lots of registered device keys, django-pushy will split your keys into smaller groups which run in parallel making the process of sending notifications faster.

Model Extensions

Packages that extend the functionality of models or add new classes of models.

  • django-aggregate-if - Conditional aggregates for Django queries, just like the famous SumIf and CountIf in Excel.
  • django-localflavor - Country-specific Django helpers, formerly of contrib fame.
  • django-model-utils - Django model mixins and utilities.
  • django-mptt - Utilities for implementing a modified pre-order traversal tree in django.
  • django-treebeard -Alternative tree data structures for Django (provides 3 different methods for storing hierarchical data, including MPTT )

Multitenancy

Packages that allow a single install of Django to serve multiple organizations.

Payment Processing

Packages that provide payment processing provider integration.

  • dj-stripe - Django + Stripe Made Easy.
  • django-merchant - A Django app that provides helpers for multiple pluggable payment backends.
  • django-oscar-adyen - This package provides integration with the Adyen payment gateway. It is designed to work seamlessly with the e-commerce framework django-oscar but can be used without Oscar.
  • django-oscar-paymentexpress - This package provides integration with the payment gateway, PaymentExpress using their PX POST API. It is designed to work seamlessly with the e-commerce framework django-oscar but can be used without it.
  • django-oscar-paypal - PayPal integration for django-oscar. Can be used without Oscar too.
  • django-paypal - A pluggable Django application for integrating PayPal Payments Standard or Payments Pro.
  • django-pinpayments - Django library to simplify payment processing with pin.
  • django-zebra - Forms, widgets, template tags and examples that make Stripe + Django easier.
  • django-payu - A Django app that provides integration between Django and PayU Payment Gateway.

Project Management

Packages for project management and time-tracking.

  • django-timepiece - A multi-user Django application for tracking people's time on projects.

Reporting

Packages for creating reports

  • django-model-report - Django reports integrated with highcharts.
  • django-report-builder - A GUI for Django ORM. Build custom queries and display results. Targets sys admins and capable end users who might not be able to program.

RESTful API

Packages for developing RESTful APIs.

  • django-nap - A minimalist approach to object serialization, RESTful views, and RPC views.
  • django-rest-auth - This app makes it extremely easy to build Django powered SPA's (Single Page App) or Mobile apps exposing all registration and authentication related functionality as CBV's (Class Base View) and REST (JSON).
  • django-rest-framework - A powerful and flexible toolkit that makes it easy to build Web APIs.
  • django-rest-localflavor - Localized flavors of some serializers to use with Django Rest Framework.
  • django-rest-swagger - Swagger Documentation Generator for Django REST Framework
  • drfdocs - Document Web APIs made with Django REST Framework
  • django-tastypie - Creating delicious APIs for Django apps since 2010.
  • restless - A lightweight REST miniframework for Python
  • djangorestframework-recursive - Recursive Serialization for Django REST framework

Search

Packages that provide search capabilities to projects.

Security

Packages that improve the security of a project.

  • django-admin-honeypot - A fake Django admin login screen to notify admins of attempted unauthorized access.
  • django-axes - is a very simple way for you to keep track of failed login attempts, both for the Django admin and for the rest of your site.
  • django-debreach - BREACH mitigation for Django apps.
  • django-password-session - Invalidate all active sessions after change password (not needed for Django 1.7+).
  • django-secure-auth - Secure authentication by TOTP, SMS, Codes & Question. Login protection with ban by IP and captcha.
  • django-security - A collection of models, views, middlewares, and forms to help secure a Django project.
  • django-sslify - Force SSL on your Django site.
  • django-stronghold - Stronghold is middleware to default all your views to login required.
  • django-sudo - Sudo mode is an extra layer of security for your most sensitive pages. This is an implementation of GitHub's Sudo Mode for Django.
  • django-mfa - Django app for providing MFA (Multi-Factor Authentication).
  • django-user-sessions - Extend Django sessions with a foreign key back to the user, allowing enumerating all user's sessions.

SEO

Packages that help improve SEO ( Search Engine Optimization ) of projects.

  • django-meta - a pluggable app to allow Django developers to quickly add meta tags and OpenGraph, Twitter, and Google Plus properties to their HTML responses.
  • django-robots - A Django app for managing robots.txt files following the robots exclusion protocol.
  • django-seo2 - Provides a set of tools for managing Search Engine Optimisation (SEO) metadata for Django sites.

Settings

Packages that help manage the configurability of projects.

  • django-configurations - A helper for organizing Django project settings by relying on well established programming patterns.
  • django-constance - A Django app for storing dynamic settings in pluggable backends (Redis and Django model backend built in) with an integration with the Django admin app.
  • python-decouple - Strict separation of config from code.
  • django-environ - Allows you to utilize 12factor inspired environment variables to configure your Django application.
  • django-split-settings - Organize Django settings into multiple files and directories. Easily override and modify settings. Use wildcards and optional settings files.
  • django-dynamic-preferences - Dynamic global and instance settings for your django project.

Storage

Packages that extend the functionality of the existing storage backend or provide new storage backends.

  • django-selectel-storage - This application allows you easily save media and static files into Selectel cloud storage.
  • django-storages - django-storages is a collection of custom storage backends for Django.
  • django-queued-storage - Provides a proxy for Django storage backends that allows you to upload files locally and eventually serve them remotely.
  • django-webdav-storage - Django storage backend that stores files in custom WebDAV storage.

Tagging

Packages for adding tags to Django models.

Task Queue

Packages that make working with task/background queues easier.

  • django-celery - Celery Integration for Django. (no longer required for Celery 3.1 and up)
  • django-q - A native multiprocessing task queue for Django.
  • django-rq - The easiest way to monitor and use RQ in your Django projects.
  • huey - A little multi-threaded task queue for python.

Testing

Packages that help test code or generate test data.

Thumbnail

Packages that help generate thumbnails.

  • django-stdimage - Thumbnails and image utils for Django.
  • django-versatileimagefield - A drop-in replacement for django's ImageField that provides a flexible, intuitive and easily-extensible interface for quickly creating new images from the one assigned to the field.
  • easy-thumbnails - Easy thumbnails for Django.
  • sorl-thumbnail - Thumbnails for Django.

Translations

Packages help with the task of translating projects.

  • django-hvad - Painless translations in django, using the regular ORM. Integrates easily into existing projects and apps. Easy convertible from django-multilingual-ng.
  • django-klingon - An attempt to make django model translations suckless and with no integrations pain in your app.
  • django-modeltranslation - Translate dynamic content of existing Django models to an arbitrary number of languages without having to change the original model classes.
  • django-parler - Simple Django model translations without nasty hacks
  • django-rosetta - Rosetta is a Django application that eases the translation process of your Django projects.

Views

Packages that enhance or provide new view classes.

Web frontend integration

Packages for integrating and managing front-end packages.

  • django-angular - Let AngularJS play well with Django.
  • django-bower - Easy way to use bower with your Django project.
  • django-js-reverse - Javascript url handling for Django that doesn't hurt.
  • djangular - A reusable Django app that provides better integration and tools for Angular.js.

WYSIWYG Editors

Packages that makes text editing awesome.

  • django-ckeditor - Django admin CKEditor integration.
  • django-summernote - Summernote is a simple WYSIWYG editor. django-summernote allows you to embed Summernote into Django very handy. Support admin mixins and widgets.
  • django-tinymce - TinyMCE integration for Django.
  • django-redactoreditor - This package helps integrate the Redactor Javascript WYSIWYG-editor in Django.
  • django-wysiwyg - A Django application for making Django textareas rich text editors. Certainly as a template tag and possibly as a form widget.

Wikis

Packages for adding wiki functionality to a project.

  • django-wiki A wiki system with complex functionality for simple integration and a superb interface. Store your knowledge with style: Use django models.
  • waliki An extensible wiki app for Django with a Git backend.

Workflows

Packages that do process, procedure and/or business tasks management.

  • django-flows - django-flows keeps state and position in complicated flows of logic, allowing optional branches and complicated paths through a series of individual user actions.
  • django-fsm - Django friendly finite state machine support.
  • django-river - Django state machine and workflow library provides on the fly changes.
  • django-states - State machine for django models.
  • django-viewflow - Reusable workflow library for Django.
  • django-workflows - django-workflows provides a generic workflow engine for Django.
  • django-xworkflows - Library to plug xworkflows into django models.

Other

Other awesome Django packages.

  • django-activeurl - Easy to use active URL highlighting for django
  • django-activity-stream - Generate generic activity streams from the actions on your site. Users can follow any actors' activities for personalized streams.
  • django-adminactions - Collection of useful actions to use with django.contrib.admin.ModelAdmin and/or django.contrib.admin.AdminSite
  • django-autoadmin - Automatic admin users for Django projects.
  • django-braces - Reusable, generic mixins for Django.
  • django-calendarium - A reusable app to manage and display a calendar in your templates.
  • django-changuito - A cart app for your django site, an updated fork of django-cart
  • django-cors-headers - Django app for handling the server headers required for Cross-Origin Resource Sharing (CORS).
  • django-dfp - App that provides tags to fetch Google DFP ads.
  • django-dynamic-scraper - Creating Scrapy scrapers via the Django admin interface.
  • django-extensions - This is a repository for collecting global custom management extensions for the Django Framework.
  • django-filter - A generic system for filtering Django QuerySets based on user selections.
  • django-friendship - Django app to manage following and bi-directional friendships.
  • django-gravatar2 - Essential Gravatar support for Django. Features helper methods, templatetags and a full test suite!
  • django-hackathon-starter - A boilerplate for Django web applications, containing various social authentication methods and several popular API examples.
  • django-ipware - A Django application to retrieve user's IP address.
  • django-macros-url - Django Macros URL. Routing must be simple as possible.
  • django-magic-embed - an easy and simple Django template tag and tool to embed video and get thumbnails from video providers.
  • django-markitup - A Django reusable application for end-to-end markup handling.
  • django-mmc - App for monitoring management commands on Django..
  • django-overextends - Circular template inheritance for Django.
  • django-pagination - https://github.com/ericflo/django-pagination.
  • django-el-pagination - Django EL(Endless) Pagination can be used to provide Twitter-style or Digg-style pagination, with optional Ajax support.
  • django-simple-pagination - A Simple Django app for digg-style pagination with little effort.
  • django-quiz-app - This is a configurable quiz app for Django.
  • django-recaptcha - Django reCAPTCHA form field/widget integration app.
  • django-smuggler - Django Smuggler is a pluggable application for Django Web Framework that helps you to import/export fixtures via the automatically-generated administration interface.
  • django-solo - Helps working with singletons - things like global settings that you want to edit from the admin site.
  • django-sql-explorer - Easily share data via SQL queries, right from Django
  • django-stored-messages - Store Django messages on your project's backend.
  • django-ratelimit - provides a decorator to rate-limit views. Limiting can be based on IP address or a field in the request--either a GET or POST variable.
  • django-uuslug - a slugify application that guarantees Uniqueness and handles Unicode.
  • django-watchman - django-watchman exposes a status endpoint for your backing services like databases, caches, etc.
  • django-websocket-redis - Websockets for Django applications using Redis as message queue.
  • metamon - Collection of Ansible playbooks to quickly start your Django Application
  • micawber - A small library for extracting rich content from urls.
  • towel - a collection of tools which make your life easier if you are building a web application using Django.
  • django-admin-env-notice - Visually distinguish environments in Django Admin.

Projects

Outstanding Django projects.

CMS

  • django-cms - The easy-to-use and developer-friendly CMS.
  • django-fiber - Django Fiber, a simple, user-friendly CMS for all your Django projects
  • feincms - A Django-based CMS with a focus on extensibility and concise code.
  • Mezzanine - A content management platform built using the Django framework.
  • wagtail - A Django content management system focused on flexibility and user experience.
  • leonardo - A new Django content management system built on top of FeinCMS and OpenStack Horizon.

Document Management

  • mayan-edms - Open source, Django based DMS (document management system) with custom metadata indexing, file serving integration, OCR capabilities, document versioning and electronic signature verification.

e-Commerce

  • Cartridge - Ecommerce for Django/Mezzanine.
  • django-oscar - Domain-driven e-commerce for Django.
  • Lighting Fas Shop - Lighting Fas Shop is Ecommerce made with Django.
  • Saleor - An e-commerce storefront for Python and Django.
  • Satchless - Satchless brings e-commerce and Python together.
  • Satchmo - Satchmo is an eCommerce framework created in Django which allows you to develop unique and robust online stores.
  • Django-Shop - A Django based shop system.

Other

  • Django packages - Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects.
  • Django-QA - A simple Q&A App.
  • django-salted - Full stack SaltStack configuration for Django with the help of Vagrant.
  • Drum - Reddit / Hacker News clone for Django/Mezzanine.
  • koalixcrm - Beautiful CRM/ERP for small business.
  • OmniDB - Web tool for database management and conversion, built with Django.

Project Management

  • ITSY - Issue Tracking System
  • taiga - Agile, Free and Open Source Project Management Tool

Resources

Where to discover new Django apps and projects.

Books

Websites

  • Django Girls Tutorial - A fun and engaging tutorial showing how to build a blog using Django and deploy it to Heroku.
  • Mozilla Tutorial - Tutorial that shows how to set up a development environment, and how to get started with using it to create your own web applications.
  • Django Introduction - A reusable set of slides to educate more people about Django.
  • Django Packages - Django Packages is a directory of reusable apps, sites, tools, and more for your Django projects.
  • Django Sites - Django Sites is a showcase of websites powered by Django.
  • Full Stack Python's Django page - contains explanations for Django's philosophy and its components along with links to other resources and tutorials.
  • Simple is Better Than Complex - A blog about Django, Python and Web Development. Weekly updates containing tutorials, tips, featured packages, reference guides and code snippets.
  • Marina Mele's site - A blog about Django and Python. Includes deployment to Heroku, a Django project boilerplate for best practices, testing and more.

Conferences

  • Django Beer - the new meeting of the Django community of Florence.
  • Django Village - the Italian Django community conference. An opportunity to meet djangonauts from all over Italy and abroad.
  • Django Weekend - is a Django/Python non-profit community event, organised and run entirely by volunteers. The conference is Django-focused, but all aspects of Python fall within its remit.
  • Django: Under The Hood - is an exciting new Django conference for experienced Django developers. Come and learn about the internals of Django, and help to shape its future.
  • DjangoCon Europe - is the annual largest European-based Django conference that is usually held in late spring.
  • DjangoCon US - is the largest North American Django conference generally held the first week in September each year.

Non Python packages

External documentation

Additional sources of information about django features.

  • Classy Class-Based Views - Detailed descriptions, with full methods and attributes, for each of Django's class-based generic views.
  • Classy Django REST Framework - Detailed descriptions, with full methods and attributes, for each of Django REST Framework's class-based views and serializers.

Videos

Utilities

Non Django projects that make it easier to work with Django.

  • Django-manage.py-anywhere - Run manage.py commands from anywhere. Finds closest to current path manage.py file and runs commands against it.
  • Logan - A toolkit for running standalone Django applications. It provides you with tools to create a CLI runner, manage settings, and the ability to bootstrap the process.