Django

Просунутий Django ORM

Raw SQL, custom managers, query expressions, database functions, atomic transactions, select_for_update, race conditions, database routers

28 питань зі співбесід·
Senior
1

Яка основна різниця між Model.objects.raw() та connection.cursor() для виконання raw SQL у Django?

Відповідь

Model.objects.raw() повертає автоматично зіставлені екземпляри моделі, зберігаючи переваги ORM, такі як доступ до атрибутів і зв'язки. connection.cursor() повертає сирий курсор бази даних із кортежами, забезпечуючи більшу гнучкість для запитів, не прив'язаних до конкретної моделі, але вимагаючи ручної обробки результатів.

2

Яка основна перевага створення custom Manager у Django замість додавання методів безпосередньо до моделі?

Відповідь

Custom Manager інкапсулює логіку запитів на рівні таблиці, дозволяючи ланцюжки методів із QuerySet та повторне використання цієї логіки всюди, де використовується модель. Методи моделі працюють з окремими екземплярами. Manager також дозволяє змінювати стандартний QuerySet за допомогою get_queryset().

3

Як реалізувати custom QuerySet, щоб увімкнути ланцюгування користувацьких методів у Django?

Відповідь

Щоб увімкнути ланцюгування, створіть клас, що успадковує QuerySet, із методами, які повертають self або відфільтрований QuerySet. Потім використайте custom QuerySet через Manager.from_queryset() або визначте власний Manager із get_queryset(), що повертає custom QuerySet. Це дозволяє викликати Model.objects.custom_method().filter().

4

Який вираз Django використовувати для атомарного інкрементування лічильника в базі даних без ризику race condition?

5

Яка функція transaction.atomic() і як вона обробляє винятки в Django?

+25 питань зі співбесід

Інші теми співбесід Django

Основи Python

Junior
25 запитань

Об'єктно-орієнтований Python

Junior
20 запитань

Основи Django

Junior
20 запитань

Models Django - Основи

Junior
22 запитань

Django Views

Junior
20 запитань

Шаблони Django

Junior
18 запитань

Форми Django

Mid-Level
22 запитань

Розширені QuerySets

Mid-Level
25 запитань

Автентифікація Django

Mid-Level
22 запитань

Django Middleware

Mid-Level
18 запитань

Django Admin

Mid-Level
20 запитань

Django REST Framework

Mid-Level
30 запитань

Сигнали Django

Mid-Level
18 запитань

Завантаження файлів

Mid-Level
20 запитань

Кешування в Django

Mid-Level
20 запитань

Сесії Django

Mid-Level
18 запитань

Email у Django

Mid-Level
18 запитань

Тестування Django

Mid-Level
22 запитань

Безпека Django

Mid-Level
22 запитань

Розгортання Django

Mid-Level
24 запитань

Продуктивність Django

Senior
24 запитань

Django & Celery

Senior
22 запитань

Django Channels

Senior
24 запитань

Django & GraphQL

Senior
24 запитань

Django & Docker

Senior
20 запитань

Django в екосистемі мікросервісів

Senior
24 запитань

Користувацькі команди Django

Senior
18 запитань

Інтернаціоналізація Django

Senior
20 запитань

Патерни проєктування Django

Senior
24 запитань

Django Async та ASGI

Senior
26 запитань

Settings та конфігурація для production

Senior
22 запитань

Спостережуваність і моніторинг

Senior
24 запитань

Опануй Django для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно