Встречается на собеседованиях • сегодня

Использовал ли execute в Django для сырых SQL запросов

Да, в Django можно использовать connection.cursor().execute() для выполнения сырых SQL-запросов. Это полезно для сложных запросов, которые сложно выразить через ORM.

Пример:

python
from django.db import connection

def get_users():
    with connection.cursor() as cursor:
        cursor.execute("SELECT * FROM auth_user WHERE is_active = %s", [True])
        rows = cursor.fetchall()
    return rows

Важно:

  • Всегда используйте параметризованные запросы (%s) для защиты от SQL-инъекций.
  • Для SELECT можно использовать fetchone(), fetchmany(size), fetchall().
  • Для INSERT/UPDATE/DELETE изменения применяются сразу (если не в транзакции).

Альтернатива — raw() для моделей:

python
User.objects.raw("SELECT * FROM auth_user WHERE is_active = %s", [True])
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы