- 深入理解Django:框架內(nèi)幕與實(shí)現(xiàn)原理
- 沈聰 全樹(shù)強(qiáng)編著
- 813字
- 2022-05-06 12:23:53
1.2.1 調(diào)試django-admin命令
首先,從GitHub的Django項(xiàng)目中下載django-2.2.16.tar.gz包,解壓縮后使用VSCode直接導(dǎo)入即可,如圖1-2所示。

圖1-2
本次調(diào)試的命令為django-admin startproject first_django。新建一個(gè)調(diào)試文件,單擊側(cè)邊欄的Run圖標(biāo),如果沒(méi)有配置過(guò)調(diào)試信息,則會(huì)出現(xiàn)如圖1-3所示界面。如果之前配置過(guò)調(diào)試信息,則直接在文件區(qū)修改.vscode目錄下的launch.json文件即可。

圖1-3
單擊調(diào)試工作區(qū)的create a launch.json file鏈接,在彈出的窗口中單擊Python文件調(diào)試打開(kāi)的Python文件選項(xiàng),即可創(chuàng)建Django源碼調(diào)試文件,如圖1-4所示。

圖1-4
此時(shí),VSCode在項(xiàng)目目錄下會(huì)創(chuàng)建一個(gè).vscode目錄,里面有一個(gè)launch.json文件,其內(nèi)容如下:


修改后的內(nèi)容如下:

說(shuō)明:在配置中可以寫(xiě)多個(gè)參數(shù)控制調(diào)試程序。下面簡(jiǎn)要說(shuō)明部分參數(shù)及其值的作用,更多的參數(shù)配置可以參考VSCode的官方文檔。
◎ program:提供Python程序入口模塊的完全限定路徑。推薦值為${file}。當(dāng)在某個(gè)Python文件下按F5鍵或者是單擊Run菜單下的Start Debugging命令時(shí),${file}就是該P(yáng)ython文件的全路徑。
◎ cwd:先進(jìn)入某個(gè)目錄,再執(zhí)行相應(yīng)的調(diào)試命令。
◎ env:它非常重要,沒(méi)有它就無(wú)法搭建源碼的調(diào)試環(huán)境。在Django源碼中出現(xiàn)的導(dǎo)入語(yǔ)句,如from django等,希望能將其定位至下載的源碼文件所在目錄(django)下。因此,當(dāng)調(diào)試Python項(xiàng)目的源碼時(shí),會(huì)使用該字段設(shè)定PYTHONPATH值。在django-2.2.16項(xiàng)目中,django目錄就是源碼的根目錄,而django目錄正好在項(xiàng)目目錄下,因此只需設(shè)置PYTHONPATH=${workspaceRoot}即可。
◎ args:指定傳遞給Python程序的參數(shù)。
上面的調(diào)試配置主要是希望執(zhí)行命令cd D:/learning-notes/book-code/django-code-analyze/chap01;django-admin startproject first_django,該命令使得新建的Django項(xiàng)目位于chap01目錄中。為了讓${file}等于Django源碼下的bin/django-admin.py文件,在開(kāi)始調(diào)試時(shí)就需要定位在該文件中。如果直接指定該命令文件的位置,如上面的注釋語(yǔ)句,則無(wú)論在哪個(gè)文件上啟動(dòng)調(diào)試都可以。為了驗(yàn)證該調(diào)試配置得是否正確,可以在源碼中打上斷點(diǎn),具體位置如圖1-5和圖1-6所示。

圖1-5

圖1-6
選中django/bin/django-admin.py文件,按F5鍵啟動(dòng)調(diào)試,此時(shí)程序停在斷點(diǎn)一處,如圖1-7所示。

圖1-7
單擊繼續(xù)按鈕后,程序停在斷點(diǎn)二處,此時(shí)程序已進(jìn)入Django內(nèi)部的源碼文件中,如圖1-8所示。釋放斷點(diǎn)繼續(xù)運(yùn)行程序,可以看到在目錄chap01中已生成了相應(yīng)的Django項(xiàng)目文件。至此,Django的調(diào)試環(huán)境搭建成功,如圖1-9所示。

圖1-8

圖1-9
- 軟件界面交互設(shè)計(jì)基礎(chǔ)
- Blockly創(chuàng)意趣味編程
- Java Web程序設(shè)計(jì)
- C/C++程序員面試指南
- HTML5+CSS3 Web前端開(kāi)發(fā)技術(shù)(第2版)
- Arduino可穿戴設(shè)備開(kāi)發(fā)
- Python Web自動(dòng)化測(cè)試設(shè)計(jì)與實(shí)現(xiàn)
- 深入理解Java虛擬機(jī):JVM高級(jí)特性與最佳實(shí)踐
- 量子計(jì)算機(jī)編程:從入門(mén)到實(shí)踐
- C++服務(wù)器開(kāi)發(fā)精髓
- Puppet 5 Beginner's Guide(Third Edition)
- PHP 7 Programming Blueprints
- Learning Redux
- jBPM6 Developer Guide
- Expert Angular