Djangos ORM hanterar databasanslutningar i trådlokala variabler. Så varje annan tråd som kommer åt ORM kommer att skapa sin egen anslutning. Du kan se det på de första raderna i django/db/backends/__init__.py
.
Om du vill begränsa antalet databasanslutningar som görs måste du begränsa antalet olika trådar som faktiskt kommer åt ORM. En lösning kan vara att implementera en tjänst som delegerar ORM-förfrågningar till en pool av dedikerade ORM-trådar. För att överföra förfrågningarna och deras resultat från och till andra trådar måste du implementera någon form av meddelandeöverföringsmekanism. Eftersom detta är ett typiskt producent-/konsumentproblem bör Python-dokumentationen om trådning ge några tips om hur man uppnår detta.
Redigera: Jag har precis googlat efter "django-anslutningspooling". Det är många som klagar på att Django inte tillhandahåller en ordentlig anslutningspool. Några av dem lyckades integrera ett separat poolpaket. För PostgreSQL skulle jag ta en titt på pgpool-mellanvaran.