Django

No release history is available yet.

What it is

Django is an open-source web framework for Python. It provides an integrated approach to building database-backed web applications, including an object-relational mapper, URL routing, request and response handling, server-rendered templates, form processing and validation, authentication and authorization, an administrative interface, security protections, caching, internationalization, and support for background-adjacent integration points such as email and file storage. It is commonly used for content-heavy sites, business applications, internal tools, marketplaces, APIs, and other systems where rapid development around a relational data model is useful. Django can render HTML directly or serve as the backend for a separate frontend, often through its own request handlers or a REST-oriented extension.

History

Django emerged from newsroom software work, where developers needed to build database-driven publishing applications quickly while maintaining a reusable foundation. It was released publicly as a Python web framework and became known for its convention-oriented design, included administrative interface, and emphasis on practical security. Its early identity centered on server-rendered applications using relational databases and a monolithic project structure. Over time, the project expanded its support for modern Python practices, improved extensibility and security, added asynchronous capabilities in parts of the request stack, and evolved alongside changes in browser-based frontend development and API-centric architecture. Django remains actively maintained by its open-source community and is widely deployed in both longstanding and newer Python systems.

Migration notes

Migration effort depends heavily on whether Django is being introduced as a new application framework, adopted incrementally around an existing Python system, or removed from a mature application. Moving to Django is usually easier when the source application already has clear relational models and conventional web workflows. The main work commonly involves translating data access into Django models and migrations, mapping routes and controller logic into views, adapting templates, integrating identity providers, and deciding how static files, uploaded media, background jobs, caching, email, and observability will be operated. Django's conventions can accelerate delivery, but they may require restructuring applications that use another ORM, hand-written SQL, a different dependency-injection style, or a highly modular service architecture. Moving away from Django can be more difficult because its components are often tightly connected: model definitions drive schema migrations, forms and the admin rely on model metadata, templates may contain framework-specific tags, middleware can carry important request behavior, and authentication and permissions may be embedded throughout views and templates. Third-party packages can add further coupling, particularly for REST APIs, task queues, content management, tenancy, auditing, storage, and authentication. A safe migration normally starts with an inventory of models, migration history, custom fields, signals, middleware, management commands, scheduled work, template usage, and package-level integrations. Teams should also identify behavior that is not obvious from endpoint code, such as automatic validation, transaction boundaries, permission checks, locale handling, security middleware, and admin-driven operational workflows. Data migration deserves separate planning because Django schema migrations are not merely a database change log; they may include application-level data transformations and dependencies on historical model definitions. Incremental replacement is often feasible by placing a new service or frontend alongside the existing Django application, but shared authentication, session formats, URL ownership, and database write boundaries need explicit design.

Version support status

Django version support status by cycle
CycleStatusDate
Django 6.1SupportedSupport ends 30 April 2027
Django 6.0SupportedSupport ends 4 August 2026
Django 5.2SupportedSupport ends 3 December 2025
Django 5.1End of lifeEOL 3 December 2025
Django 5.0End of lifeEOL 2 April 2025
Django 4.2End of lifeEOL 7 April 2026
Django 4.1End of lifeEOL 1 December 2023
Django 4.0End of lifeEOL 1 April 2023
Django 3.2End of lifeEOL 1 April 2024
Django 3.1End of lifeEOL 7 December 2021
Django 3.0End of lifeEOL 6 April 2021
Django 2.2End of lifeEOL 11 April 2022
Django 2.1End of lifeEOL 2 December 2019
Django 2.0End of lifeEOL 1 April 2019
Django 1.11End of lifeEOL 1 April 2020