Django is a web application framework written in Python.
Django follows the “batteries included” approach, which means it ships with a lot of built-in features for building database-backed web applications.
The main parts of a Django application are:
- Models, which define database-backed data structures
- Views, which handle requests and return responses
- Templates, which render HTML
- URLs, which map paths to views
- Admin, which gives you a built-in management interface
Django is often used with:
- PostgreSQL or another relational database
- The Django ORM for database access
- Django templates for server-rendered HTML
- Django admin for managing application data
- Django REST Framework when building APIs
Why people use it
Django is a good fit when you want a full-featured web framework with strong defaults, clear conventions, and built-in tooling.
It is especially strong for:
- CRUD applications
- Internal dashboards
- Content-heavy sites
- Applications that benefit from a ready-made admin interface
Tradeoffs
Django can feel heavier than smaller frameworks if you only need a tiny API, but it saves time when you want the framework to provide most of the common plumbing.
Rule of thumb:
- Use Django when you want a full web framework with strong built-in defaults
- Use a lighter framework when you only need a small service or minimal API