Back to questions
Junior — Middle
64
Можно ли напрямую выполнять SQL-запросы в Django без использования ORM?
Answer from AI
sobes.tech AI
Да, в Django можно выполнять SQL-запросы напрямую, минуя ORM. Для этого используется метод raw() или объект connection из модуля django.db.
Пример с использованием raw():
from myapp.models import MyModel
# Выполнение произвольного SELECT-запроса
queryset = MyModel.objects.raw('SELECT * FROM myapp_mymodel WHERE some_field = %s', [value])
for obj in queryset:
print(obj)
Для более сложных запросов (INSERT, UPDATE, DELETE) можно использовать курсор:
from django.db import connection
with connection.cursor() as cursor:
cursor.execute("UPDATE myapp_mymodel SET some_field = %s WHERE id = %s", [new_value, obj_id])
Таким образом, Django позволяет гибко работать с базой данных, используя как ORM, так и чистый SQL.