Apakah ada cara saya bisa mencetak kueri yang dihasilkan Django ORM?
Katakanlah saya menjalankan pernyataan berikut: Model.objects.filter(name='test')
Bagaimana saya bisa melihat permintaan SQL yang dihasilkan?
django
django-models
django-orm
Jarvis
sumber
sumber
prefetch_related
menunjukkan 2 kueri? Saya hanya melihat 1.<django.db.models.sql.query.Query object
Anda juga bisa menggunakan python logging untuk mencatat semua permintaan yang dihasilkan oleh Django. Cukup tambahkan ini ke file pengaturan Anda.
Metode lain dalam aplikasi kasus adalah menghasilkan keluaran html - django debug toolbar dapat digunakan.
sumber
'level': 'DEBUG'
bawah'django.db'
.Anda dapat menempelkan kode ini pada shell Anda yang akan menampilkan semua pertanyaan SQL:
sumber
Selama
DEBUG
aktif:Untuk permintaan individual, Anda dapat melakukan:
sumber
query
mengembalikanQuery
objek sejak Djagno 1.2 yang tidak memilikias_sql
atribut.Mungkin Anda harus melihat
django-debug-toolbar
aplikasi, itu akan mencatat semua pertanyaan untuk Anda, menampilkan informasi profil untuk mereka dan banyak lagi.sumber
Solusi yang kuat adalah memiliki server database Anda log ke file dan kemudian
sumber
Jika Anda menggunakan perutean basis data, Anda mungkin memiliki lebih dari satu koneksi basis data. Kode seperti ini memungkinkan Anda melihat koneksi dalam satu sesi. Anda dapat mengatur ulang statistik dengan cara yang sama seperti dengan satu koneksi:
reset_queries()
...
sumber
Anda bisa menggunakan Django debug_toolbar untuk melihat kueri SQL. Panduan langkah demi langkah untuk penggunaan debug_toolbar:
Instal Debug_toolbar
Edit file settings.py & tambahkan debug_toolbar ke Aplikasi yang sudah diinstal, ini harus ditambahkan di bawah ini ke 'django.contrib.staticfiles'. Juga tambahkan debug_toolbar ke Middleware.
Settings.py =>
buat daftar baru bernama INTERNAL_IPS di file settings.py
Settings.py => buat daftar baru di akhir file settings.py & tambahkan daftar di bawah ini:
Ini akan memungkinkan debug dijalankan hanya pada server pengembangan internal
Edit file urls.py dari #Project & tambahkan kode di bawah ini:
terapkan migrasi & jalankan server lagi
Anda akan melihat add-on di halaman web Anda di 127.0.0.1 & jika Anda mengklik kotak centang SQL Query, Anda benar-benar dapat melihat jangka waktu kueri juga.
sumber