A QuerySet represents a query to the database; it is lazy, meaning it is only executed when read. You compose it with filter, exclude, order_by. Double-underscore lookups, like titre__icontains or date__gte, express comparison conditions.
Example
Article.objects.filter(titre__icontains='django').order_by('-date')