在Django中,如何执行自定义sql?

时间:2013-10-09 13:22:08

标签: python sql django

django管理命令之一是'sq​​l_custom',其中 PRINTS 为指定的应用程序定义了所有自定义sql。而不是打印它我想从django EXECUTE 它。有没有其他命令允许我这样做?让我添加'syncdb'不是一个答案,因为它做了很多其他的(我不需要的)事情。

2 个答案:

答案 0 :(得分:0)

这是你的意思吗?

https://docs.djangoproject.com/en/dev/topics/db/sql/

>>> for p in Person.objects.raw('SELECT * FROM myapp_person'):
...     print(p)
John Smith
Jane Jones

答案 1 :(得分:0)

django.core.management.sql中生成一个函数sql_custom,它“返回修改给定应用程序的SQL语句的自定义表的列表。”

from django.core.management.sql import sql_custom
from django.db import connection

# List of the custom table modifying SQL statements for all apps.
l = sql_custom('', None, connection)
sql = " ".join(l)

cursor = connection.cursor()
cursor.execute(sql)

https://docs.djangoproject.com/en/dev/topics/db/sql/#executing-custom-sql-directly