from django.db import connection
def execute_raw_sql_query():
# 定义你的原生SQL查询
sql_query = "SELECT * FROM your_table_name WHERE some_column = %s"
params = ['some_value']
# 使用connection.cursor()获取游标
with connection.cursor() as cursor:
# 执行原生SQL查询
cursor.execute(sql_query, params)
# 获取查询结果的列名
columns = [col[0] for col in cursor.description]
# 获取查询结果
result = [dict(zip(columns, row)) for row in cursor.fetchall()]
# 处理查询结果
for row in result:
# 在这里处理每一行的数据
print(row)
在这个例子中,你需要替换 your_table_name 为你要查询的实际表名,some_column 和 some_value 分别是你的查询条件和参数。
查询结果通过游标的description属性获取列名,然后使用fetchall()获取所有行的数据。这里通过构建字典列表来处理查询结果,使得每一行的数据都以字典形式存储,便于访问和处理。
同样,务必确保在构建原生SQL查询时采用安全的做法,使用参数化查询以防止SQL注入攻击。
转载请注明出处:http://www.pingtaimeng.com/article/detail/7168/Django