What is Django ORM?
Answer
Django's ORM (Object-Relational Mapper) provides a high-level Python API for interacting with databases without writing raw SQL. Each Django Model class maps to a database table; each instance maps to a row. Basic model: class Article(models.Model): title = models.CharField(max_length=200) content = models.TextField() author = models.ForeignKey(User, on_delete=models.CASCADE) published_at = models.DateTimeField(auto_now_add=True) is_published = models.BooleanField(default=False) class Meta: ordering = ["-published_at"]. QuerySet API: Article.objects.all() # All articles Article.objects.filter(is_published=True) # Filtered Article.objects.exclude(author__is_active=False) # Excluded Article.objects.get(id=1) # Single or raises DoesNotExist Article.objects.create(title="Hello", content="...") Article.objects.filter(title__icontains="django") Article.objects.order_by("-published_at")[:10] Article.objects.values("title", "author__username") Article.objects.annotate(comment_count=Count("comments")) Article.objects.select_related("author") # JOIN for FK Article.objects.prefetch_related("tags") # Prefetch M2M. Lazy evaluation: QuerySets are lazy — SQL is only executed when data is actually needed (iterated, converted to list, printed, sliced). Chaining: Article.objects.filter(is_published=True).exclude(author__is_staff=True).order_by("-published_at")[:5]. Django supports PostgreSQL, MySQL, SQLite, and Oracle.