官术网_书友最值得收藏!

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模塊的源碼后,就可以繼續搜索相關的語句進行斷點調試了。

主站蜘蛛池模板: 九寨沟县| 阜宁县| 扶余县| 门源| 旺苍县| 四子王旗| 龙南县| 英山县| 清涧县| 霍城县| 和顺县| 哈尔滨市| 思南县| 遵义县| 武汉市| 扶绥县| 泽库县| 芒康县| 紫金县| 桃源县| 北宁市| 安龙县| 新田县| 庐江县| 迁西县| 同心县| 邛崃市| 永清县| 贵南县| 山东省| 丹阳市| 佛山市| 宿松县| 连南| 松溪县| 陵川县| 翁源县| 普安县| 古浪县| 余姚市| 射洪县|