Se till att din Django DEBUG-inställning är inställd på True. Gör sedan så här:
>>> from django.db import connection
>>> connection.queries
[{'sql': 'SELECT polls_polls.id, polls_polls.question, polls_polls.pub_date FROM polls_polls',
'time': '0.002'}]
connection.queries är endast tillgänglig om DEBUG är True. Det är en lista över ordböcker i frågeexekveringsordning. Varje ordbok har följande:
sql - Den obearbetade SQL-satsen
time - Hur lång tid det tog att utföra uttalandet, i sekunder.
connection.queries inkluderar alla SQL-satser - INSERT, UPDATES, SELECT, etc. Varje gång din app träffar databasen kommer frågan att registreras.
Om du använder flera databaser kan du använda samma gränssnitt för varje medlem i ordlistan connections`:
>>> from django.db import connections
>>> connections["my_db_alias"].queries
Om du behöver rensa frågelistan manuellt vid någon tidpunkt i dina funktioner, anropa reset_queries(), så här:
from django.db import reset_queries
reset_queries()
Ja, se Integrering med en äldre databas.
Ta en titt på Djangos stöd för schemamigreringar.
Om du inte har något emot att rensa data har verktyget manage.py i ditt projekt ett alternativ flush` som återställer databasen till det tillstånd den hade omedelbart efter att migrate` kördes.
Nej, endast primärnycklar med en kolumn stöds.
Men det här är inget problem i praktiken, eftersom det inte finns något som hindrar dig från att lägga till andra begränsningar (med hjälp av modellalternativet unique_together eller genom att skapa begränsningen direkt i din databas) och genomdriva unikheten på den nivån. Primärnycklar med en enda kolumn behövs för att t.ex. administratörsgränssnittet ska fungera; du behöver t.ex. ett enda värde för att ange ett objekt som ska redigeras eller tas bort.
NoSQL-databaser stöds inte officiellt av Django själv. Det finns dock ett antal sidoprojekt och förgreningar som tillåter NoSQL-funktionalitet i Django.
Du kan ta en titt på wikisidan där några projekt diskuteras.
Vi försöker undvika att lägga till specialfall i Django-koden för att tillgodose alla databasspecifika alternativ som tabelltyp etc. Om du vill använda något av dessa alternativ skapar du en migrering med en RunSQL operation som innehåller ALTER TABLE-satser som gör vad du vill göra.
Om du t.ex. använder MySQL och vill att dina tabeller ska använda tabelltypen MyISAM använder du följande SQL:
ALTER TABLE myapp_mytable ENGINE=MyISAM;
aug. 11, 2025