如果必要执行更复杂的SQL查询(联表查询、子查询), 可以使用raw()方法;
from django.db import connection
from .models import User
def get_all_users_raw(request):
with connection.cursor() as cursor:
cursor.execute(“SELECT id, username, password, status FROM users”)
rows = cursor.fetchall()
users_list = [
{‘id’: row[0], ‘username’: row[1], ‘password’: row[2], ‘status’: row[3]}
for row in rows
]
return JsonResponse({‘status’: ‘success’, ‘data’: users_list})
方法2;使用raw()和ORM
可以结合ORM的raw()方法来直接执行SQL查询;即将SQL语句直接放到raw()中, 具体效果如下:
users = User.objects.raw(“SELECT id, username, password, status FROM users”)
for user in users:
print(user.username)