Django也能智慧型LazyLoad?

2021-08-22 11:15:04 字數 714 閱讀 8452

我google了一下,發現django本身是沒有提供日誌和sql列印功能的。而有人做了些工作,如這位仁兄寫了個中介軟體,可以在頁面上列印出該次請求一共執行了多少條語句,每條語句的執行時間。而這裡有個叫django-logging的專案,為django提供logging,包括sql的列印。等會就試驗一下。django天生就是lazyload的,需要用到資料的時候才去載入,我希望,我的擔心是多餘的。一會嘗試使用log來看看測試結果吧。

結果一:select_related對允許為空的外來鍵不起作用。

我的查詢語句是這樣:entries = blog.entry_set.filter(status=1).select_related(depth=1).order_by('-id') 查詢乙個blog下面所有的entry,並把有關聯的資料一併抓取出來(根據foreignkey)。也就是說,在查詢entry的同時查出blog,作 者,分類等資訊。

但是情況是,我在頁面找印這些文章的時候,需要把文章的分類也打顯示出來,這時候,django卻跑到資料庫執行了n次查詢分類的語句。暴汗。這是經典的 hibernate的延遲載入用得不恰當的情況啊!我一看列印出來的查詢語句,有查相關的作者、blog,但偏偏沒有查分類。最後我回到model裡比較 了一下,我的分類屬性上面設定了null=true,原意是讓文章可以沒有分類。最後我嘗試著去掉null=true,一執行。那n條查詢不見了。靠。。原來select_related在外鍵允許空的情況下是行不通d。

原文在這裡

換個角度,智慧型硬體也能這樣玩

沒有一點特色,就不敢說是新的智慧型硬體產品。最近出現了不少新的智慧型硬體產品,雖然它們應用場景不同,但是它們有個共同的特點,好玩有趣。1.葫蘆手機 作為後起之秀,葫蘆科技公司去年才成立,其團隊成員曾為韓庚和北京國安訂製的庚phone和御phone的前大唐電信fansphone,專門針對細分使用者的需...

玩著也能學python 玩著也能學Python

內容推薦 縱觀科技領域裡為世界作出偉大貢獻的人,從夢想改變世界到真正改變世界,啟蒙的種子往往來自他們童年時 貪玩 且好奇的心,繼而用 程式設計 澆灌它茁壯成長。玩著學程式設計 系列叢書就是這樣一本站在未來看現在的啟蒙讀本,以精美可愛的插畫 完整的世界觀構建了一座腦洞大開的 未來城市 在那裡,你既是遊...

相聲也能SOA

而郭德剛就做到了這一點,我相信他應該也是會經常上網去找素材的,這一點在他的相聲中就可以找到答案。這樣做確實是高明,首先,作為乙個相聲演員可以從師傅哪兒學到的東西畢竟是有限的,而每天去到生活中去找那麼多可樂的包袱又不太現實,而拿來主義卻是最取巧兒的辦法。再次,由於包袱 於大眾,也必然可以在大眾中引起共...