Czy istnieje sposób na wydrukowanie zapytania generowanego przez Django ORM?
Powiedz, że wykonuję następującą instrukcję: Model.objects.filter(name='test')
Jak mogę zobaczyć wygenerowane zapytanie SQL?
django
django-models
django-orm
Jarvis
źródło
źródło
prefetch_related
np. Pokaż 2 zapytania? Widzę tylko 1.<django.db.models.sql.query.Query object
Możesz również użyć rejestrowania w Pythonie do rejestrowania wszystkich zapytań generowanych przez Django. Po prostu dodaj to do pliku ustawień.
Inną metodą w przypadku, gdy aplikacja generuje wyjście html - można użyć paska narzędzi debugowania django .
źródło
'level': 'DEBUG'
pod'django.db'
.Możesz wkleić ten kod do swojej powłoki, która wyświetli wszystkie zapytania SQL:
źródło
Tak długo, jak
DEBUG
jest włączone:W przypadku pojedynczego zapytania możesz wykonać:
źródło
query
zwracaQuery
obiekt od Djagno 1.2, który nie maas_sql
atrybutu.Może powinieneś rzucić okiem na
django-debug-toolbar
aplikację, która będzie logować za Ciebie wszystkie zapytania, wyświetlać dla nich informacje o profilowaniu i wiele więcej.źródło
Solidnym rozwiązaniem byłoby zapisanie dziennika serwera bazy danych do pliku, a następnie
źródło
Jeśli używasz routingu bazy danych, prawdopodobnie masz więcej niż jedno połączenie z bazą danych. Taki kod pozwala zobaczyć połączenia w sesji. Możesz zresetować statystyki w taki sam sposób, jak w przypadku pojedynczego połączenia:
reset_queries()
...
źródło
Aby wyświetlić zapytanie SQL, możesz użyć paska debug_toolbar Django. Przewodnik krok po kroku dotyczący użycia paska narzędzi debug_toolbar:
Zainstaluj Debug_toolbar
Edytuj plik settings.py i dodaj pasek debug_toolbar do zainstalowanych aplikacji, należy to dodać poniżej do „django.contrib.staticfiles”. Dodaj także debug_toolbar do oprogramowania pośredniego.
Settings.py =>
utwórz nową listę o nazwie INTERNAL_IPS w pliku settings.py
Settings.py => utwórz nową listę na końcu pliku settings.py i dodaj poniższą listę:
Umożliwi to debugowanie tylko na wewnętrznym serwerze deweloperskim
Edytuj plik urls.py #Project i dodaj poniższy kod:
ponownie zastosuj migrację i uruchomienie serwera
Zobaczysz dodatek na swojej stronie internetowej pod adresem 127.0.0.1 i jeśli klikniesz pole wyboru Zapytanie SQL, możesz również zobaczyć czas wykonywania zapytania.
źródło