THE WEB FRAMEWORK FOR PERFECTIONISTS with deadlines — Django Framework Deep Dive
From newsroom tool to powering Instagram, NASA, and Spotify — explore the complete story of Django: its history, ecosystem, companies, and technologies that make it the backbone of the modern web.
The History of Django
Born in a Kansas newspaper, shaped by necessity, and evolved into one of the world's most trusted web frameworks.
🌌 Origin Story — The Lawrence Journal-World
Django was created in the summer of 2003 by Adrian Holovaty and Simon Willison while working at the Lawrence Journal-World newspaper in Lawrence, Kansas. Faced with the brutal deadlines of a daily newsroom and the need to rapidly build and iterate on web applications, they needed a framework that could move as fast as journalism demanded. Tired of repetitive boilerplate, they extracted a powerful, reusable toolkit from their internal codebase. In July 2005, Django was released publicly as open-source software — named after jazz guitarist Django Reinhardt.
The core philosophy — "batteries included" — meant shipping with everything a developer needs: an ORM, admin interface, authentication, form handling, URL routing, and templating out of the box. Jacob Kaplan-Moss joined as a core contributor and co-lead shortly after. Django's DNA of speed-without-sacrifice remains unchanged to this day.
First Public Release
The initial public release after extraction from the Journal-World codebase. Introduced the foundational architecture: MVC pattern (called MTV in Django), the ORM, URL dispatcher, template engine, and the iconic auto-generated admin.
- Model-Template-View (MTV) architectural pattern
- Automatic admin interface generation
- Database-driven development with ORM
- URL configuration via regex patterns
Stable API Commitment
The landmark 1.0 release signified Django's first stable, production-ready API with a compatibility promise. This was a watershed moment establishing Django as enterprise-grade software.
- Stable API guarantee — no more breaking changes without deprecation
- Signals framework introduced
- Transaction management improvements
- Unicode support throughout the stack
- Geo-spatial extensions (GeoDjango) included
Multiple Database & Class-Based Views
A pivotal era introducing multi-database support, class-based views, timezone awareness, and the foundation for modern Django patterns.
- Multiple database routing support (v1.2)
- CSRF protection enabled by default (v1.2)
- Class-Based Views — reusable, composable view logic (v1.3)
- Built-in logging framework (v1.3)
- Timezone-aware datetimes (v1.4)
- In-browser testing client improvements
Python 3, Migrations & Custom User Models
This generation brought native Python 3 support, the revolutionary Migrations framework, custom user model support, and a pluggable template engine system.
- Python 3 support added (v1.5)
- Configurable custom User model (v1.5)
- Built-in database Migrations framework — goodbye South! (v1.7)
- App Registry for app configuration (v1.7)
- Multiple template engine support (v1.8)
- Expression-based query annotations with F() and Func() (v1.8)
Python 3-Only & Simplified URLs
Django 2.0 dropped Python 2 support entirely, cleaned up years of legacy code, and introduced a dramatically simpler URL routing syntax with path() converters.
- Python 3 only — legacy Python 2 support dropped (v2.0)
- Simplified URL routing with
path()and type converters (v2.0) - Mobile-friendly admin with responsive design (v2.0)
- Window functions support in ORM queries (v2.0)
- Major performance improvements in query compilation (v2.1)
- Long-term support (LTS) release — v2.2
ASGI & Async Support Arrives
A transformative era: Django gained ASGI support enabling asynchronous Python, MariaDB support, JSONField for all backends, and crossed into the modern async web paradigm.
- ASGI (Async Server Gateway Interface) support — hello async Django! (v3.0)
- MariaDB officially supported (v3.0)
- Enumerations for choices (TextChoices, IntegerChoices) (v3.0)
- Cross-database JSONField (v3.1)
- Async views and middleware support (v3.1)
- Functional indexes and inline foreign key constraints (v3.2 LTS)
Async ORM & CSRF Modernization
Django deepened its async story with async ORM operations, improved form rendering, Redis cache backend out of the box, and powerful database constraint improvements.
- Async ORM interface — async queryset iteration (v4.1)
- Built-in Redis cache backend (v4.0)
- zoneinfo-based timezone support (v4.0)
- Form rendering using the template engine (v4.1)
- Async handlers for class-based views (v4.1)
- Constraint validation in model.full_clean() (v4.2 LTS)
- Psycopg 3 (psycopg) support (v4.2)
Facets, Generated Columns & Python 3.12+
The current generation embraces modern Python features, database-generated columns, improved admin facets, and enhanced HTMX-friendly patterns for modern frontend workflows.
- Database-generated model fields (v5.0)
- Simplified template rendering for forms with field groups (v5.0)
- Facet filters in the Django admin (v5.0)
- Python 3.12 and 3.13 support (v5.1–5.2)
- QuerySet.aiterator() — true async streaming (v5.1)
- Async storages support (v5.1)
- Long-term support release — v5.2 LTS
Who Uses Django Today
From Silicon Valley unicorns to government agencies, Django powers applications serving billions of users worldwide.
One of Django's most famous adopters. Instagram runs its core backend on Django, serving over 2 billion monthly active users. They use Django for feed generation, user profiles, media handling, and API endpoints — demonstrating Django's extreme scalability when properly architected.
Disqus
Disqus powers comments for millions of websites. They famously scaled Django to handle 8 billion page views per month, leveraging Django's ORM, caching layers, and custom middleware for real-time comment delivery and moderation systems.
Mozilla
Mozilla uses Django extensively across its web properties including addons.mozilla.org (AMO), support.mozilla.org, and various developer tools. Django's security framework and admin interface align well with Mozilla's open-source ethos and security requirements.
NASA
NASA's official website nasa.gov runs on Django. Beyond the public-facing site, NASA uses Django for internal data management systems, scientific data visualization platforms, and mission support tools where reliability and security are paramount.
Spotify
Spotify uses Django for several backend services, particularly data management, artist dashboards, and internal tooling. Django's admin panel is especially leveraged for content management and internal operations at massive scale.
Pinterest's early infrastructure was built heavily on Django, serving tens of millions of users. They chose Django for its rapid development capabilities, the ORM's flexibility with complex relational data, and the admin panel for content moderation at scale.
Eventbrite
Eventbrite's core platform is built on Django, handling event creation, ticketing workflows, payment processing integration, and attendee management. Django's form system and ORM are particularly well-suited to their complex event data models and checkout flows.
The Washington Post
Fitting for Django's newsroom origins, The Washington Post uses Django for its web presence and editorial tooling. Django's rapid development cycle, admin panel for content management, and robust templating system make it a natural fit for digital publishing.
Dropbox
Dropbox uses Django for parts of its web interface and administrative systems. As a primarily Python-based company, Django fits naturally into their technology stack for building internal tools, marketing pages, and account management interfaces.
The Django Ecosystem
Django is more than a framework — it's a universe of patterns, packages, and practices for building every kind of web application imaginable.
Django Models & ORM
CORE · DATABASE LAYERThe Django Object-Relational Mapper (ORM) allows you to define your database schema as Python classes — called Models. Each model maps to a database table. You interact with the database using Python instead of raw SQL: User.objects.filter(age__gte=18). The ORM supports complex queries, annotations, aggregations, select_related/prefetch_related for performance, F() expressions, Q() objects for OR logic, and raw SQL escape hatches. Migrations track schema changes over time, allowing collaborative team development without manual SQL migrations.
Django URLs, Reverse URLs & Namespaces
CORE · ROUTINGDjango's URL dispatcher maps URL patterns to Python view functions or class-based views. Modern Django uses path() with typed converters (<int:pk>, <slug:slug>) and re_path() for regex. Reverse URLs (reverse('blog:post-detail', args=[pk])) let you generate URLs dynamically — your templates never hardcode paths. URL namespaces (app_name) prevent naming collisions in large applications with multiple apps, enabling clean URL organization and modularity.
Django Views (FBVs & CBVs)
CORE · LOGIC LAYERViews are the business logic layer. Function-Based Views (FBVs) are simple Python functions that receive an HttpRequest and return an HttpResponse — perfect for straightforward logic. Class-Based Views (CBVs) provide reusable, mixins-powered views: ListView, DetailView, CreateView, UpdateView, DeleteView, and more. CBVs eliminate boilerplate via inheritance and composition. Decorators (@login_required, @permission_required) and CBV mixins provide elegant access control at the view level.
Django Templates
CORE · PRESENTATION LAYERDjango's built-in template language (DTL) provides a powerful yet intentionally logic-light syntax for rendering HTML. Template tags ({% for %}, {% if %}, {% block %}), filters ({{ value|date:"Y-m-d" }}), and template inheritance ({% extends "base.html" %}) enable DRY layout design. Jinja2 can be plugged in as an alternative engine. Django's template system enforces separation of concerns — keeping business logic in views, not templates — while still providing enough power for dynamic HTML generation, static file handling, and i18n support.
Django Forms
CORE · INPUT HANDLINGDjango's Forms library handles the full lifecycle of user input: rendering HTML form fields, validating submitted data, and converting to Python types. ModelForm automatically generates a form from a model, reducing code dramatically. Custom validators, widget customization, formsets for multiple-object editing, and form wizards for multi-step workflows are all built-in. Form rendering in Django 4.1+ uses the template engine, enabling fully customized form layouts via template overrides — a major improvement in design flexibility.
Django Signals
CORE · EVENT SYSTEMDjango's signals framework implements a publisher-subscriber pattern for decoupled intra-application communication. Built-in signals include pre_save, post_save, pre_delete, post_delete, m2m_changed, and request_started/finished. You can define custom signals for domain events. Common use cases include: sending emails after user registration, invalidating caches on model save, creating related objects automatically, and logging audit trails — all without tight coupling between components. Signal handlers are registered with @receiver decorators.
The Django Admin Panel
CORE · MANAGEMENT UIDjango's automatic admin interface is one of its most celebrated features — a complete, production-ready CRUD management UI generated from your models with zero additional code. Register models with admin.site.register() or extend ModelAdmin for custom list displays, filters, search, inline editing, and actions. The admin supports custom views, dashboard widgets, and third-party themes like Jazzmin, Unfold, or Django Suit. It's used by content teams, data analysts, and operations staff who need database access without developer intervention.
Security in Django
CORE · SECURITY LAYERDjango ships with robust security by default. CSRF protection via {% csrf_token %} and middleware prevents cross-site request forgery. SQL injection is prevented by the ORM's parameterized queries. XSS protection via automatic HTML escaping in templates. Clickjacking protection with X-Frame-Options. Content Security Policy support. Secure password hashing (PBKDF2, bcrypt, Argon2). The SECRET_KEY for session signing. HTTPS enforcement with SECURE_SSL_REDIRECT. django.middleware.security.SecurityMiddleware provides HSTS headers, X-Content-Type-Options, and Referrer-Policy out of the box.
Django REST Framework (DRF)
API · RESTThe de-facto standard for building RESTful APIs with Django. DRF provides Serializers (model-to-JSON conversion with validation), ViewSets (CRUD endpoints with minimal code), Routers (automatic URL generation), Authentication backends (Token, Session, JWT via simplejwt), Permission classes, Pagination, Filtering, and Throttling. With ModelSerializer and a ModelViewSet, a full REST API for a model can be created in under 20 lines of code. DRF powers APIs for mobile apps, SPAs, and third-party integrations at massive scale.
DRF Browsable API
API · DEVELOPER TOOLSOne of DRF's most delightful features — a fully interactive, human-readable web interface for your API endpoints, generated automatically. When you navigate to an API endpoint in a browser, DRF renders an HTML page showing the endpoint's documentation, accepted methods, serializer schema, and forms for POST/PUT/PATCH operations. It uses content negotiation (Accept: text/html vs application/json) to serve either the browsable UI or raw JSON. Invaluable for development and testing without external tools like Postman.
GraphQL with graphene-django
API · GRAPHQLFor applications needing flexible, client-driven data fetching, graphene-django integrates the Graphene library to expose a GraphQL API from your Django models. You define GraphQL Types mapped to Django models, Queries for reading data, Mutations for writes, and Subscriptions for real-time updates. The /graphql endpoint serves GraphiQL — an interactive query editor. Strawberry-django is a modern alternative using Python type annotations. GraphQL excels for mobile APIs, highly complex relational data fetching, and BFF (Backend for Frontend) architectures.
SOAP APIs with Django
API · ENTERPRISE INTEGRATIONWhile less common in modern greenfield projects, SOAP (Simple Object Access Protocol) APIs are still prevalent in enterprise environments — banking, healthcare, government, and legacy ERP systems. The spyne library integrates with Django to build SOAP web services, auto-generating WSDL definitions. zeep is used as a SOAP client when consuming external SOAP services. Django handles the HTTP transport layer while spyne manages XML serialization, service definitions, and protocol negotiation for WSDL-compliant enterprise integrations.
Django Debug Toolbar
PACKAGES · DEVELOPER TOOLSThe django-debug-toolbar injects a collapsible side panel into your HTML responses during development, providing real-time profiling data: SQL queries executed (with execution times and EXPLAIN output), template context variables and render times, cache hits/misses, signal connections fired, session data, request/response headers, static files, and a complete settings dump. It's indispensable for identifying N+1 query problems, slow templates, and cache effectiveness. Entirely disabled in production via the DEBUG flag.
Django Channels
PACKAGES · ASYNC / WEBSOCKETSDjango Channels extends Django to handle WebSockets, long-polling, and other asynchronous protocols — things traditional Django's synchronous HTTP couldn't handle. Channels introduces Consumers (analogous to views for async connections), Channel Layers (backed by Redis for multi-process message passing), and a routing system for protocol types. Use cases include live chat applications, real-time notifications, collaborative document editing, live sports scores, multiplayer games, and dashboard streaming. Channels uses ASGI and is fully compatible with Django's authentication system.
Django CMS
PACKAGES · CONTENT MANAGEMENTDjango CMS is a mature, enterprise-grade content management system built on Django. It provides an inline editing interface (edit content directly on the page), a hierarchical page tree, plugin system for reusable content blocks, multi-language support, versioning, and a rich permissions system. Unlike WordPress, Django CMS gives developers full Python/Django control over the codebase while providing content editors a polished UI. Used by large organizations for multilingual corporate websites, educational platforms, and publishing systems.
Building PDFs with Django
PACKAGES · DOCUMENT GENERATIONDjango integrates seamlessly with PDF generation libraries. WeasyPrint converts HTML/CSS templates into pixel-perfect PDFs — you design your invoice or report in HTML, then render it as PDF using the same Django template engine. ReportLab provides programmatic PDF creation for complex layouts. xhtml2pdf is another popular option. Common use cases: invoice generation, legal documents, certificates, payslips, reports, and receipts. The pattern: render a Django template to HTML string → pass to WeasyPrint → return as HttpResponse with application/pdf content type.
django-cte (Common Table Expressions)
PACKAGES · ADVANCED SQLThe django-cte package (django-cte by dimagi) adds support for PostgreSQL Common Table Expressions (CTEs) — also known as WITH queries — to Django's ORM. CTEs enable recursive queries (ideal for hierarchical/tree data like org charts, threaded comments, category trees), complex query factoring, and query optimization through materialization hints. Without this package, recursive CTEs require raw SQL. django-cte provides With and CTEQuerySet that integrate cleanly with Django's existing queryset API, preserving chainability and compatibility with DRF.
Django Extensions (django-extensions)
PACKAGES · DEVELOPER TOOLSdjango-extensions is a power-user toolkit adding over 60 management commands and model mixins. Highlights include: shell_plus (auto-imports all models), runserver_plus (Werkzeug debugger integration), graph_models (generates ER diagrams from models), show_urls (lists all URL patterns), sqldiff (detects schema drift), reset_db (drops and recreates the database), TimeStampedModel and UUIDModel abstract mixins, and export_emails. Nearly every serious Django project installs django-extensions in development.
Pillow (Django Image Processing)
PACKAGES · MEDIA HANDLINGPillow is the Python Imaging Library fork that Django's ImageField depends on for image validation and processing. Beyond just storing uploads, Pillow enables: resizing and thumbnailing (image.thumbnail((300,300))), format conversion (PNG → WebP), cropping and watermarking, color manipulation, EXIF data reading, and image optimization. Common patterns include generating thumbnails on upload via signals, creating social media preview images, processing user avatars, and building image transformation pipelines. Django Storages + Pillow + S3 is the standard production media stack.
django-filter
PACKAGES · QUERYINGdjango-filter provides a declarative filtering system for Django views and DRF APIs. Define a FilterSet class with filter fields mapping to model fields and lookup types (exact, icontains, gte, range), then connect it to a view. DRF integration via DjangoFilterBackend enables URL-based filtering (/api/products/?category=electronics&price__gte=100) automatically. Supports custom filter methods, combined filters, and form rendering for browsable API filtering. Essential for any API with searchable, sortable, filterable resources.
django-environ
PACKAGES · CONFIGURATIONdjango-environ implements the Twelve-Factor App methodology for Django configuration, loading settings from environment variables and .env files. env('DATABASE_URL') automatically parses postgres://user:pass@host/db into Django's DATABASES dictionary. Type casting handles booleans, integers, lists, and tuples. It keeps secrets out of source code (no committed passwords), enables environment-specific configurations (dev/staging/production), and simplifies Docker/Kubernetes deployments where config is injected via environment variables. The standard for 12-factor Django applications.
PostgreSQL + psycopg2 / psycopg3
DATABASES · PRIMARYPostgreSQL is Django's recommended production database, and the combination is arguably the most popular stack in the Python web ecosystem. psycopg2 is the mature, battle-tested adapter; psycopg3 (simply psycopg) is the modern async-capable rewrite supported since Django 4.2. PostgreSQL unlocks Django features unavailable on other backends: ArrayField, JSONField, HStoreField, RangeField, full-text search with SearchVector, trigram_similar lookups, UNLOGGED tables, advisory locks, and the django-cte package for WITH queries.
MySQL & MariaDB
DATABASES · RELATIONALMySQL and MariaDB (the community fork, officially supported since Django 3.0) are widely used with Django in shared hosting environments, LAMP stacks, and organizations with existing MySQL infrastructure. The mysqlclient adapter (recommended) or PyMySQL connect Django to MySQL. Considerations: MySQL has historically had stricter limitations on transaction support and lacks some PostgreSQL-specific field types. MariaDB adds columnar storage, temporal tables, and window functions. Django's ORM handles the differences transparently for standard operations.
Microsoft SQL Server (MSSQL)
DATABASES · ENTERPRISEMicrosoft SQL Server is used with Django primarily in enterprise Windows environments and organizations with existing MSSQL infrastructure. mssql-django (maintained by Microsoft) is the official backend. django-mssql-backend and pyodbc with django-pyodbc-azure are alternatives. MSSQL integration enables access to Azure SQL Database, stored procedures, and enterprise features like row-level security. Limitations: some Django ORM features require workarounds, and schema migrations can be less predictable than on PostgreSQL.
Oracle Database
DATABASES · ENTERPRISEOracle Database integration uses the cx_Oracle (or newer python-oracledb) adapter with Django's built-in Oracle backend. Used predominantly in large enterprises, banks, and government systems with existing Oracle investments. Django supports Oracle-specific features like sequences, autonomous transactions, and LOB handling. However, Oracle support lags behind PostgreSQL in terms of Django ORM feature coverage, and the setup complexity is considerably higher. Oracle Database is a pragmatic choice when Django must integrate with existing enterprise data warehouses or existing Oracle-dependent applications.
MongoDB & NoSQL Databases
DATABASES · NOSQLDjango's ORM is designed for relational databases, but MongoDB integration is possible via Djongo (translates ORM queries to MongoDB operations) or mongoengine (an ODM replacing Django's ORM). For other NoSQL databases: django-cassandra-engine for Cassandra, and CouchDB or Elasticsearch can be used as secondary stores alongside a primary relational database. The more common pattern is using PostgreSQL's JSONField for document-like flexibility within the relational model, rather than a full NoSQL switch. Elasticsearch with django-elasticsearch-dsl is popular for full-text search alongside PostgreSQL.
Redis for Caching
INFRASTRUCTURE · CACHINGRedis is the standard caching backend for Django in production. Since Django 4.0, a built-in Redis cache backend (django.core.cache.backends.redis.RedisCache) is included. Configure with a Redis URL and use the cache API: cache.set(key, value, timeout), cache.get(key). Django supports per-view caching (@cache_page), per-site caching via middleware, template fragment caching ({% cache %}), and low-level cache API calls. Redis also powers Django Channels' channel layers, Celery's message broker, and session storage — making it a triple-duty component in the typical Django production stack.
Celery for Async Tasks
INFRASTRUCTURE · TASK QUEUECelery is the industry-standard distributed task queue for Django. Offload time-consuming work from HTTP request/response cycles: sending emails, generating PDFs, processing images, calling external APIs, running ML models, sending push notifications, and scheduled cron-like tasks. Django integrates via the celery package with shared_task decorator. Redis or RabbitMQ serve as the message broker. Celery Beat handles periodic tasks. django-celery-results stores task results in your database. flower provides a real-time monitoring dashboard. The Django + Celery + Redis trinity is foundational to scalable Django architecture.
Gunicorn for Production
INFRASTRUCTURE · WSGI SERVERGunicorn (Green Unicorn) is the most widely used WSGI HTTP server for serving Django in production. It manages a pool of worker processes (typically 2 * CPU_CORES + 1 workers), handles concurrent requests, and interfaces with Nginx as a reverse proxy. Worker types include sync (default), gevent (async via greenlets), gthread (threaded), and tornado. For async Django (ASGI), uvicorn (with uvicorn[standard]) or daphne replace Gunicorn. The typical production stack: Nginx → Gunicorn (or Uvicorn) → Django → PostgreSQL, all orchestrated by systemd or Docker Compose.
Django + React.js
FRONTEND · SPA / HYBRIDThe most popular frontend pairing. Django serves as a pure backend API (via DRF) while React handles the entire frontend as a Single Page Application. Communication via REST or GraphQL. Deployment options: separate services (Django API + React CDN), or Django serving the built React bundle via whitenoise. django-webpack-loader or Vite-based setups integrate the build pipeline. React Query or SWR manages server state. Authentication via JWT tokens (simplejwt) or cookie-based sessions. For hybrid approaches, HTMX + Django Templates is gaining popularity as a simpler alternative that avoids SPA complexity.
Django + Angular
FRONTEND · ENTERPRISE SPAAngular's opinionated, TypeScript-first framework pairs well with Django's opinionated backend in enterprise contexts. Django provides a DRF REST API; Angular consumes it with its built-in HttpClient and RxJS observables. Angular's strong typing complements DRF's serializer schemas — tools like openapi-generator can auto-generate typed Angular services from DRF's OpenAPI schema (via drf-spectacular). Angular's built-in routing, forms, and dependency injection mirror Django's own structured approach. Common in enterprise applications, government portals, and large-team projects where consistency and tooling matter.
Django + Vue.js
FRONTEND · PROGRESSIVE SPAVue.js is frequently chosen as the middle-ground between React's ecosystem complexity and Angular's enterprise overhead. Django + Vue is popular for startups and medium-sized applications. Vue 3's Composition API and Pinia state management pair cleanly with Django REST APIs. django-vite integrates Vite's build pipeline with Django's template and static file systems, enabling Vue components embedded within Django templates — a progressive enhancement approach. Nuxt.js (Vue's meta-framework) can serve SSR frontend applications with Django as the headless API backend.
Django Developer Statistics
Developer survey data, platform statistics, and infrastructure trends from the Django and broader Python communities.
🖥️ Development OS — Django Developers
Source: JetBrains Python Developer Survey 2023 / Stack Overflow 2023
☁️ Production Hosting Platforms
Source: JetBrains Python Developer Survey 2023
🐳 Docker Containerization
Source: Stack Overflow Survey 2023 / JetBrains 2023
🐧 Production Server OS
Source: JetBrains Python Developer Survey 2023
🗄️ Primary Database — Django Projects
Source: JetBrains Python Developer Survey 2023
💻 IDE / Editor — Python/Django Developers
Source: JetBrains Python Developer Survey 2023
* Survey data reflects approximate figures from publicly available developer surveys. Individual project distributions vary.
Explore the Site
Deep-dive documentation, tutorials, and resources for every corner of the Django ecosystem.
Getting Started with Django
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.
/tutorials/getting-startedBuilding REST APIs with DRF
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam.
/guides/rest-apiProduction Deployment Guide
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
/guides/deploymentReal-Time Apps with Channels
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis consectetur purus sit amet fermentum. Cras justo odio, dapibus ac facilisis in, egestas eget quam.
/tutorials/django-channelsAsync Tasks with Celery + Redis
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam id dolor id nibh ultricies vehicula ut id elit. Donec sed odio dui, nec porta massa pretium non.
/guides/celerySecurity Best Practices
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean lacinia bibendum nulla sed consectetur. Praesent commodo cursus magna vel scelerisque nisl consectetur.
/guides/securityGraphQL APIs with graphene-django
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Cum sociis natoque penatibus et magnis dis parturient.
/tutorials/graphqlDockerizing Your Django App
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras justo odio dapibus ac facilisis.
/guides/dockerDjango ORM Deep Reference
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed posuere consectetur est at lobortis. Donec sed odio dui, nec porta massa pretium non eget purus.
/reference/ormDjango + Modern Frontend
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum id ligula porta felis euismod semper. Sed commodo posuere pede. Mauris ut est. Ut quis purus.
/guides/frontendPDF Generation with WeasyPrint
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras mattis consectetur purus sit amet fermentum. Fusce dapibus, tellus ac cursus commodo tortor mauris.
/tutorials/pdf-generationCommunity & Resources
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis ridiculus mus.
/community