> Как выполняется чистый SQL в Django, например через execute (Python)

Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: Стилсофт

Стек: Python

> Пример ответа

В Django для выполнения чистого SQL используется метод execute() объекта connection, который находится в модуле django.db. Сначала нужно получить объект соединения с помощью django.db.connection, затем вызвать cursor() для создания курсора, и наконец выполнить SQL через cursor.execute(). Пример:

PYTHON
from django.db import connection
def get_users():
with connection.cursor() as cursor:
cursor.execute("SELECT id, username FROM auth_user WHERE is_active = %s", [True])
rows = cursor.fetchall()
return rows

Важно использовать параметризованные запросы (передавать параметры вторым аргументом в виде списка или кортежа) для защиты от SQL-инъекций. Для работы с несколькими базами данных используйте django.db.connections['alias']. После выполнения запроса данные извлекаются методами fetchone(), fetchall() или fetchmany(). Не забудьте закрыть курсор (контекстный менеджер with делает это автоматически).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью