django中使用資料庫源語進行操作返回rawquerset的處理
阿新 • • 發佈:2019-02-13
在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的內容