
Просунутий Django ORM
Raw SQL, custom managers, query expressions, database functions, atomic transactions, select_for_update, race conditions, database routers
1Яка основна різниця між Model.objects.raw() та connection.cursor() для виконання raw SQL у Django?
Яка основна різниця між Model.objects.raw() та connection.cursor() для виконання raw SQL у Django?
Відповідь
Model.objects.raw() повертає автоматично зіставлені екземпляри моделі, зберігаючи переваги ORM, такі як доступ до атрибутів і зв'язки. connection.cursor() повертає сирий курсор бази даних із кортежами, забезпечуючи більшу гнучкість для запитів, не прив'язаних до конкретної моделі, але вимагаючи ручної обробки результатів.
2Яка основна перевага створення custom Manager у Django замість додавання методів безпосередньо до моделі?
Яка основна перевага створення custom Manager у Django замість додавання методів безпосередньо до моделі?
Відповідь
Custom Manager інкапсулює логіку запитів на рівні таблиці, дозволяючи ланцюжки методів із QuerySet та повторне використання цієї логіки всюди, де використовується модель. Методи моделі працюють з окремими екземплярами. Manager також дозволяє змінювати стандартний QuerySet за допомогою get_queryset().
3Як реалізувати custom QuerySet, щоб увімкнути ланцюгування користувацьких методів у Django?
Як реалізувати custom QuerySet, щоб увімкнути ланцюгування користувацьких методів у Django?
Відповідь
Щоб увімкнути ланцюгування, створіть клас, що успадковує QuerySet, із методами, які повертають self або відфільтрований QuerySet. Потім використайте custom QuerySet через Manager.from_queryset() або визначте власний Manager із get_queryset(), що повертає custom QuerySet. Це дозволяє викликати Model.objects.custom_method().filter().
Який вираз Django використовувати для атомарного інкрементування лічильника в базі даних без ризику race condition?
Яка функція transaction.atomic() і як вона обробляє винятки в Django?
+25 питань зі співбесід
Інші теми співбесід Django
Основи Python
Об'єктно-орієнтований Python
Основи Django
Models Django - Основи
Django Views
Шаблони Django
Форми Django
Розширені QuerySets
Автентифікація Django
Django Middleware
Django Admin
Django REST Framework
Сигнали Django
Завантаження файлів
Кешування в Django
Сесії Django
Email у Django
Тестування Django
Безпека Django
Розгортання Django
Продуктивність Django
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django в екосистемі мікросервісів
Користувацькі команди Django
Інтернаціоналізація Django
Патерни проєктування Django
Django Async та ASGI
Settings та конфігурація для production
Спостережуваність і моніторинг
Опануй Django для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно