Django 允许开发人员直接从视图执行原始 SQL 查询。这对于执行复杂的操作或获取通过 Django 的 ORM 无法轻松访问的数据非常有用。
要在 Django 中执行原始 SQL 查询,您可以使用以下步骤:
以下示例演示如何使用 Django 的 ORM 和原始 SQL 查询执行给定的 SQL 查询:
from app.models import Picture from django.db import connection def results(request): # Using Django ORM all = Picture.objects.all() yes = Picture.objects.filter(vote='yes').count() # Using raw SQL cursor = connection.cursor() cursor.execute('''SELECT COUNT(*) FROM pictures''') row = cursor.fetchone() num_all = row[0] cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''') row = cursor.fetchone() num_yes = row[0] return render_to_response( 'results.html', {'picture':picture, 'num_all':num_all, 'num_yes':num_yes}, context_instance=RequestContext(request) )
要使用 WHERE 子句过滤结果,只需包含SQL 查询中的 WHERE 子句。例如,要过滤“yes”的投票:
cursor.execute('''SELECT COUNT(*) FROM pictures WHERE vote = "yes"''')
以上是如何在 Django 视图中执行原始 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!