
Django ORM avanzato
Raw SQL, custom managers, query expressions, database functions, atomic transactions, select_for_update, race conditions, database routers
1Qual è la differenza principale tra Model.objects.raw() e connection.cursor() per eseguire raw SQL in Django?
Qual è la differenza principale tra Model.objects.raw() e connection.cursor() per eseguire raw SQL in Django?
Risposta
Model.objects.raw() restituisce istanze di modello mappate automaticamente, preservando i vantaggi dell'ORM come l'accesso agli attributi e alle relazioni. connection.cursor() restituisce un cursore di database grezzo con tuple, offrendo maggiore flessibilità per query non legate a un modello specifico, ma richiedendo una gestione manuale dei risultati.
2Qual è il vantaggio principale di creare un custom Manager in Django anziché aggiungere metodi direttamente al modello?
Qual è il vantaggio principale di creare un custom Manager in Django anziché aggiungere metodi direttamente al modello?
Risposta
Un custom Manager incapsula la logica delle query a livello di tabella, consentendo il concatenamento di metodi con i QuerySet e il riutilizzo di questa logica ovunque il modello sia usato. I metodi del modello operano su singole istanze. Il Manager consente anche di modificare il QuerySet predefinito con get_queryset().
3Come implementare un custom QuerySet per consentire il concatenamento di metodi personalizzati in Django?
Come implementare un custom QuerySet per consentire il concatenamento di metodi personalizzati in Django?
Risposta
Per consentire il concatenamento, bisogna creare una classe che eredita da QuerySet con metodi che restituiscono self o un QuerySet filtrato. Poi usare il custom QuerySet tramite Manager.from_queryset() o definire un Manager personalizzato con get_queryset() che restituisce il custom QuerySet. Ciò consente di chiamare Model.objects.custom_method().filter().
Quale espressione Django usare per incrementare atomicamente un contatore nel database senza rischio di race condition?
Qual è la funzione di transaction.atomic() e come gestisce le eccezioni in Django?
+25 domande da colloquio
Altri argomenti di colloquio Django
Fondamenti di Python
Python orientato agli oggetti
Fondamenti di Django
Models Django - Fondamenti
Viste Django
Template Django
Form Django
QuerySet avanzati
Autenticazione Django
Middleware Django
Django Admin
Django REST Framework
Segnali Django
Caricamento file
Caching di Django
Sessioni Django
Email in Django
Testing in Django
Sicurezza di Django
Deployment di Django
Prestazioni di Django
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django in un ecosistema di microservizi
Comandi Django personalizzati
Internazionalizzazione in Django
Design Pattern in Django
Django Async e ASGI
Settings e configurazione di produzione
Observability e monitoring
Padroneggia Django per il tuo prossimo colloquio
Accedi a tutte le domande, flashcards, test tecnici, esercizi di code review e simulatori di colloquio.
Inizia gratis