

Day21. 看看djangoORM與其對應的SQL是否為預期的樣子!
前言今天就來看看ORM組成的SQL都長什麼樣子吧,怎麼看呢?當然是用我們昨天設定好的logging或是debug toolbar來看囉! 正題我們先來修改一下models.py from django.db import models from django.utils import timezone # Create your models here. class Person(mode..
Read more

Day20. 怎麼看django組出來的SQL!
前言那麼今天要來看看,怎麼在django裡面看到django本身組合出來的SQL呢!?這個也只是我單純好奇,常常聽到有人會說用ORM生出來的SQL效能不佳等等的評語,不過今天我們只是單純看看django生成出來的SQL而已,並不會討論效能這項問題就是了,我自己是很喜歡使用ORM,因為寫ORM讓我感覺程式碼看起來的樣子比較舒服,當然這只是個人觀感~SQL還是很重要的!要會! 正題今天一共會有三..
Read more

Day19. 把現有DB轉移至djangoORM~
前言雖然好像用django通常就會直接搭配django的ORM下去開發,但本人我第一個自己開發的程式中就是一開始沒有使用djangoORM而且還把所有頁面都寫在同一個app同一個view裡面,然後在那個view裡面又組了一大堆的raw sql,再加上那時候程式能力很差完全沒有規劃只想把功能做出來,導致裡面一堆重複的地方,一想到就覺得好恐怖,不過好像扯遠了XD 就是說在初期開發下沒使用ORM又或..
Read more

Day18. migrate終於走到db啦!
前言migrate走到最後終於把前置材料都準備好要寫進db啦!!稍微回顧一下前面準備了什麼,最開始先把database load進來,接著比對了disk和database裡的table這當中還生出了migration graph,再來跟著我們下的command看處理額外對應的參數,準備好migration plan和project state後,開始處理migrate~ 正題開挖migrate..
Read more

Day17. migrate發送了信號signal!?
前言今天的內容我只能說我自己也沒有把握說真的理解了,就算了解了程式在寫什麼,也還沒達到可以理解為什麼這樣寫!話不多說,趕緊走著! 正題今天先從上次沒能理解的地方開始 這個是django有一個寫法叫做signal,顧名思義是一個傳送信號的function,而信號能做什麼事呢,接著看 看到這邊django會根據django settings中INSTALLED_APPS的AppConfig來去..
Read more

Day16. migrate 接著走遇到演算法~
前言昨天我們看到了django中的migrations是用graph的方式去存取,在造graph的時候也跑了一些function去驗證graph的一些特性,那~今天我們就繼續往下看看migrate接下來的過程吧! 正題 executor init後會跑一個去驗證graph和migration的一致性接下來會去檢查衝突 他會去檢查graph中的葉節點是否有重複 有的話就會報錯~接著往下會去..
Read more