

Day23. ORM觸發SQL的地方(這邊是print~)
前言昨天那邊我推測Todo只有在他被動作的時候才會去connect DB,所以真的在被使用的地方照昨天的寫法會是在render的時候!但今天先來看看print 正題首先先稍微驗證一下想法是不是正確的,觸發SQL的是print(todo),那在python中什麼會被print()觸發呢!?答案是magic method __repr__ or __str__ 那我們接著來看ORM filter回..
Read more

Day22. 今天來稍微看一下ORM的原始碼!
前言昨天我們看到了ORM是怎麼使用的,那麼今天就稍微來看一下ORM實際是怎麼做的吧,走到哪看到哪~ 正題我們現在有的線索就只有ORM的用法~ 直接點進去呢,會跑到這裡~ 這邊是.pyi的檔案,讓vscode能夠知道該class類別有什麼function那他實際是什麼類別呢,我們直接像上圖一樣print出來看看~<class 'django.db.models.manager...
Read more

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