django執行原始查詢sql,並返回Dict字典

2021-07-09 08:58:59 字數 868 閱讀 4094

很多時候執行sql語句,資料比django的model來的快,但並不想關心返回的字段,例如你可以執行:select * from product這種sql,這裡個方法將會返回與資料庫列名相同的鍵值對 ,格式是這樣子的:

result = [,]

當然你還可以

import json

json.dumps(result )

返回一串json資料,是不是很完美。。。。

# coding:utf-8

from django.db import connection, transaction

'''執行django原始sql語句 並返回乙個陣列物件'''

defexecutequery

(sql):

cursor = connection.cursor() # 獲得乙個游標(cursor)物件

cursor.execute(sql)

rawdata = cursor.fetchall()

print rawdata

col_names = [desc[0] for desc in cursor.description]

print col_names

result =

for row in rawdata:

objdict = {}

# 把每一行的資料遍歷出來放到dict中

for index, value in enumerate(row):

print index, col_names[index], value

objdict[col_names[index]] = value

return result

Django文件閱讀之執行原始SQL查詢

django提供了兩種執行原始sql查詢的方法 可以使用manager.raw 來執行原始查詢並返回模型例項,或者可以完全避免模型層直接執行自定義sql。每次編寫原始sql時都要關注防止sql注入 一 raw 方法 raw 方法可以用來執行返回模型例項原始的sql查詢 manager.raw raw...

mybatis進擊四 原始SQL查詢

目錄 一 原始sql查詢 二 缺點 public static void main string args throws classnotfoundexception,sqlexception private static void print resultset resultset throws ...

Django2 2丨執行原生SQL查詢

執行原生查詢 管理器方法raw 能用於執行原生sql查詢,返回模型例項。manager.raw raw query,params none,translations none 示例 class person models.model first name models.charfield last ...