1. 程式人生 > >django中使用資料庫源語進行操作返回rawquerset的處理

django中使用資料庫源語進行操作返回rawquerset的處理

在django中,在框架中找不到你需要的函式進行查詢,或者想用sql語句進行查詢的時候,
那麼這種情況該如何處理呢?

在django中有一種方法是可以直接使用sql語句對資料庫進行操作的

例如:

def test ():
sql = "select * from testmodels"
models = testmodels.objects.raw(sql)
return models 

如上例子:

是使用sql語句來查詢資料庫的方法

但是 通常 使用django封裝的查詢語句,結果是一個querset型別,至少還可以用objects.values()來獲取列表形式的資料

用raw()返回的資料是rawquerset型別,這種資料型別的操作形式比較querset更麻煩一點

不過querset可以用for遍歷取值,rawquerset也可以

例如:

def test():
sql = "select * from testmodels"
for item in testmodels.objects.raw(sql):
return item 

這樣返回的item就是一個類資料可以用點訪問資料了

msg = test()
ptint "id===",msg.id 

這樣取出的就是資料庫中id的內容