

Day25. render到engine,處理一堆東西~
前言render裡面的engine究竟是什麼?而當中的get_template又做了什麼事呢?今天就好好的來一層一層往裡面看進去! 正題接續昨天的部分 往self.find_tamplate()看 這邊有又往裡面丟,丟給了loader.get_template()先看看loader是什麼~ loader在init的時候會被賦予 然後get_template_loaders()呢 會去..
Read more

Day24. render~我渲~
前言昨天我們看到了print ORM回傳的值,實際上會去觸發到SQL,那正常在使用的情況下又是什麼時候被觸發的呢!?根據debug toolbar和logging可以看到是render的時候被觸發的!那我們就來看看render有什麼特別的吧! 正題在進去看render之前,我們先觀察一下render 在vscode中滑鼠一指過去就可以看到相關參數和說明~那我們的todo看其來是對應到cont..
Read more

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