- 深入理解Django:框架內幕與實現原理
- 沈聰 全樹強編著
- 685字
- 2022-05-06 12:23:54
1.2.2 調試manage.py命令
這里主要調試的是類似python manage.py command這樣的命令,它依賴于新創建的Django項目。下面調試manage.py命令,打開VSCode,導入前文創建的first_django項目,導入結果如圖1-10所示。

圖1-10
創建調試參數文件——lanuch.json文件,修改其內容如下:

注意,最后的justMyCode參數非常重要,在VSCode中其默認為true,即不迚入模塊源碼調試。為了調試Python模塊中的源碼,這里一定要設置justMyCode參數為false。此外,在python manage.py shell命令背后有初始化數據庫信息的相關操作,因此必須在settings.py文件中設置可用的數據庫信息:

說明:筆者在VMWare中創建了一個額外的虛擬機,并在其中搭建了MySQL服務,主機地址、端口、賬號和密碼如上述代碼所示。搭建MySQL服務的方法可以參考網上的教程,此處不再贅述。此外,這里調試的是Python內部安裝的Django模塊的源碼,和調試django-admin命令所使用的Django源碼不同。首先在Python中安裝Django模塊:

此外,必須安裝mysqlclient模塊,因為在Django內部是依賴第三方模塊去操作MySQL數據庫的。在Windows系統上安裝mysqlclient模塊略微麻煩,通常情冴下,直接使用pip install mysqlclient命令安裝會報錯,此時可以從pip的第三方模塊網站上下載對應Python版本及平臺架構的whl文件直接迚行安裝。
接下來就可以在代碼的仸意位置打上斷點進行調試了。比如在manage.py的源碼文件中給main()函數中的execute_from_command_line()方法打上斷點,然后用鼠標定位到該方法,單擊右鍵快捷菜單中Go to Definition選項,如圖1-11所示。

圖1-11
此時即可進入Python內部安裝的Django模塊的源碼中,在對應調用的語句上打上斷點,比如ManagementUtility類的實例化語句,如圖1-12所示。

圖1-12
在所有的準備工作都完成后,單擊Run菜單下的Start Debugging命令啟動調試。第一次斷點停在execute_from_command_line()方法上,如圖1-13所示。

圖1-13
單擊運行按鈕,第二次斷點停在ManagementUtility類的實例化語句上,如圖1-14所示。

圖1-14
在斷點成功進入Django模塊的源碼后,就可以繼續搜索相關的語句進行斷點調試了。
- Mastering Spring MVC 4
- Java技術手冊(原書第7版)
- Apache Spark 2 for Beginners
- Java編程指南:基礎知識、類庫應用及案例設計
- Python數據可視化之Matplotlib與Pyecharts實戰
- 信息技術應用基礎
- Raspberry Pi Home Automation with Arduino(Second Edition)
- HTML 5與CSS 3權威指南(第3版·上冊)
- Learning VMware vSphere
- Flask Web開發:基于Python的Web應用開發實戰(第2版)
- 高性能PHP 7
- Enterprise Application Architecture with .NET Core
- Learning Redux
- 川哥教你Spring Boot 2實戰
- 走近SDN/NFV