
Django ORM avançado
Raw SQL, custom managers, query expressions, database functions, atomic transactions, select_for_update, race conditions, database routers
1Qual é a principal diferença entre Model.objects.raw() e connection.cursor() para executar raw SQL no Django?
Qual é a principal diferença entre Model.objects.raw() e connection.cursor() para executar raw SQL no Django?
Resposta
Model.objects.raw() retorna instâncias de modelo mapeadas automaticamente, preservando os benefícios do ORM como acesso a atributos e relações. connection.cursor() retorna um cursor de banco de dados bruto com tuplas, oferecendo mais flexibilidade para consultas não vinculadas a um modelo específico, mas exigindo tratamento manual dos resultados.
2Qual é a principal vantagem de criar um custom Manager no Django em vez de adicionar métodos diretamente ao modelo?
Qual é a principal vantagem de criar um custom Manager no Django em vez de adicionar métodos diretamente ao modelo?
Resposta
Um custom Manager encapsula a lógica de consultas em nível de tabela, permitindo encadear métodos com o QuerySet e reutilizar essa lógica em qualquer lugar onde o modelo é usado. Os métodos de modelo operam sobre instâncias individuais. O Manager também permite modificar o QuerySet padrão com get_queryset().
3Como implementar um custom QuerySet para permitir o encadeamento de métodos personalizados no Django?
Como implementar um custom QuerySet para permitir o encadeamento de métodos personalizados no Django?
Resposta
Para permitir o encadeamento, é preciso criar uma classe que herde de QuerySet com métodos que retornem self ou um QuerySet filtrado. Em seguida, usar o custom QuerySet via Manager.from_queryset() ou definir um Manager personalizado com get_queryset() retornando o custom QuerySet. Isso permite chamar Model.objects.custom_method().filter().
Qual expressão do Django usar para incrementar atomicamente um contador no banco de dados sem risco de race condition?
Qual é a função de transaction.atomic() e como ele lida com exceções no Django?
+25 perguntas de entrevista
Outros temas de entrevista Django
Fundamentos de Python
Python orientado a objetos
Fundamentos do Django
Models Django - Fundamentos
Views do Django
Templates Django
Formulários Django
QuerySets avançados
Autenticação no Django
Middleware do Django
Django Admin
Django REST Framework
Sinais do Django
Upload de arquivos
Cache do Django
Sessões do Django
Email no Django
Testes no Django
Segurança do Django
Implantação do Django
Desempenho do Django
Django & Celery
Django Channels
Django & GraphQL
Django & Docker
Django em um ecossistema de microsserviços
Comandos personalizados do Django
Internacionalização no Django
Padrões de Projeto no Django
Django Async e ASGI
Settings e configuração de produção
Observabilidade e monitoramento
Domine Django para sua proxima entrevista
Acesse todas as perguntas, flashcards, testes tecnicos, exercicios de code review e simuladores de entrevista.
Comece gratis