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

2.1 Debug模式、Host、Port配置

Debug模式、Host、Port這3個配置項分別代表是否開啟調試模式、項目運行使用的Host(可以先簡單理解為訪問項目的域名)、項目運行監聽的端口號。這3個配置項單獨拿出來講,是因為它們在項目開發中使用的頻率非常高,并且使用的是不同的開發工具,所以配置方式也不同。為了講解方便,這里首先創建一個新的項目demo02,讀者可以自行下載相關代碼學習。下面分別學習這3個配置項的意義和配置方式。

2.1.1 Debug模式

在使用Flask框架開發項目的過程中,會不斷地添加新代碼或者修改原代碼,如果沒有開啟Debug模式,那么在修改代碼后,必須要手動重新啟動項目才能看到運行效果,這樣會大大降低開發效率。所以一般在開發時,都會開啟Debug模式,這樣在代碼修改完成后,只要單擊“保存”按鈕,或者按Ctrl+S快捷鍵,那么Flask將會自動重啟項目。另外,如果程序出錯了,在開啟Debug模式下,在瀏覽器端會顯示錯誤信息,并且標記錯誤行號,對于定位bug(故障)有非常大的幫助。那么Debug模式怎么打開呢?這要根據是否使用PyCharm Professional版來決定,以下分別進行講解。

1. 在PyCharm Professional版中開啟Debug模式

如果你使用的是PyCharm Professional版,則需要單擊右上角demo02(即項目名稱)右側下拉按鈕,然后在彈出的下拉列表中選擇Edit Configurations命令,如圖2-1所示。

圖2-1 編輯項目配置

在打開的本項目的編輯界面選中FLASK_DEBUG復選框,然后單擊OK按鈕即可,如圖2-2所示。

圖2-2 選中FLASK_DEBUG復選框

下面單擊右上角的運行按鈕運行項目,便可以看到在PyCharm控制臺顯示已經開啟了Debug模式,如圖2-3所示。

圖2-3 開啟Debug模式

接下來打開瀏覽器,在瀏覽器的地址欄中輸入http://127.0.0.1:5000,可以看到網頁中顯示Hello World!。現在返回到PyCharm中,將字符串Hello World!修改成Hello Flask!,然后按Ctrl+S快捷鍵保存代碼,可以看到PyCharm的控制臺會自動地重新加載項目,如圖2-4所示。

圖2-4 重新加載項目生成的日志信息

在項目重新加載完成后,回到瀏覽器中,重新訪問http://127.0.0.1:5000,可以看到網頁上的顯示信息已經變成了Hello Flask!。在這個過程中我們不需要手動地重啟項目,這大大提高了開發效率。

2. 在非PyCharm Professional版中開啟Debug模式

如果使用的是其他軟件編寫Flask項目,如PyCharm Community或Vistual Studio Code等,那么需要在app.run方法調用時,添加debug=True參數。在PyCharm Community版中打開項目并添加debug=True參數,如圖2-5所示。

圖2-5 在PyCharm Community中開啟Debug模式

因為PyCharm Community版中沒有集成Flask的運行模式,所以運行Flask項目時需要按照常規的Python程序來執行,也就是在app.py文件的任意空白處右擊,然后在彈出的快捷菜單中選擇Run 'app'命令,如圖2-6所示。

開始運行app.py后,即可在PyCharm Community的控制臺看到日志信息,也可以看到Debug模式已經被開啟了,如圖2-7所示。

以上便是Debug模式的開啟方式,讀者可以根據實際情況進行設置。Debug模式在開發過程中調試代碼、定位bug非常方便,但是在項目部署上線后,記得一定要關閉Debug模式,否則項目一旦出現異常,相關代碼就會顯示在瀏覽器上,很容易被有心之人利用,從而威脅網站的安全。

圖2-6 在PyCharm Community中運行Flask項目

圖2-7 PyCharm Community控制臺顯示開啟了Debug模式

2.1.2 設置Host和Port

Host代表的是主機,Port代表的是端口號。下面舉一個實際的例子來簡單解釋Host和Port。例如,百度首頁網址為https://www.baidu.com:443,其中冒號前面的www.baidu.com即為Host,冒號后面的443即為Port。百度首頁網址用的是https協議,因為https協議默認監聽的是443端口,所以在訪問百度首頁網址時,即使沒有寫明443端口,瀏覽器也會自動請求百度服務器的443端口,即通過https://www.baidu.com就可以訪問到百度首頁。

運行Flask項目后,如圖2-7所示,可以看到控制臺的打印信息Running on http://127.0.0.1:5000,此時的Host是127.0.0.1,Port是5000。如何修改Host和Port呢?這也要看是否使用的是PyCharm Professional版。下面分別進行講解。

1. PyCharm Professional版修改Host和Port

首先,同修改Debug模式一樣,先單擊右上角項目名稱旁的下拉按鈕,然后在彈出的下拉列表中選擇Edit Configurations命令,如圖2-8所示。

圖2-8 PyCharm Professional編輯項目配置

打開編輯窗口后,找到Additional options,如圖2-9所示。

首先來修改Port,在Additional options文本框中添加“--port=8000”(port前面兩個“-”),然后單擊OK按鈕,如圖2-10所示。回到PyCharm Professional主面板后,再單擊運行按鈕,即可在PyCharm Professional控制臺看到項目監聽的端口已經從之前的5000變成了8000,如圖2-11所示。

以后我們再訪問此項目時,就需要通過http://127.0.0.1:8000來訪問了。

讀者可能會好奇,在什么情況下需要修改Port呢?假設現在需要運行兩個Flask項目A和B,如果不修改端口號,則A和B兩個項目監聽的都是5000端口,這樣會導致其中一個項目不能被訪問到。此時我們可以將B項目的端口號修改成8000,以后在瀏覽器中訪問http://127.0.0.1:5000就是A項目,訪問http://127.0.0.1:8000就是B項目,這樣就能非常明確地區分開來。總而言之,在5000端口被占用的情況下,都可以通過修改Port來讓項目正常地運行起來。

圖2-9 添加額外參數

圖2-10 設置Port參數

圖2-11 修改Port后的日志信息

接下來修改Host。修改Host的步驟與修改Port是一樣的,在Additional options文本框中添加一個“--host=0.0.0.0”參數即可,如圖2-12所示。

圖2-12 添加Host配置

Host不是修改成什么都可以的,必須是以下三種之一。

 本機的局域網IP地址。IP地址在Windows系統下可以在cmd命令行終端中輸入ipconfig命令查看,在Mac或者Linux下系統可以通過ifconfig命令查看。如

查看筆者的局域網IP地址,如圖2-13所示。

圖2-13 查看筆者的局域網IP地址

如果設置成了局域網IP地址,那以后不管是自己的計算機訪問,還是局域網中其他設備訪問,都需要通過局域網IP地址才能訪問到。

 127.0.0.1:代表本機的IP地址。如果設置成本機的IP地址,則項目只能在自己的計算機上訪問。局域網中其他用戶不能訪問。

 0.0.0.0:代表既可以通過127.0.0.1訪問,也可以通過局域網IP地址訪問。

如果在項目中想讓局域網中的其他用戶訪問,一般會把Host設置成0.0.0.0,這樣別人能通過運行項目的計算機的局域網IP地址訪問到項目,在本機上也可以通過127.0.0.1訪問到項目。如圖2-12所示設置,讀者可以在家中同一個局域網下,用手機打開瀏覽器,輸入http://局域網IP地址:8000,也可以訪問到計算機上運行的Flask項目。

2. 非PyCharm Professional版修改Host和Port

在沒有使用PyCharm Professional的情況下,只需要在app.run方法中傳入host和port參數即可,如圖2-14所示。

需要注意以下兩點。

 port參數必須設置為整型,不能設置為字符串。

 host設置為0.0.0.0后,雖然控制臺日志顯示的是http://192.168.0.10:8000,但是在本機上也可以通過http://127.0.0.1:8000訪問項目,其他設備則可以通過http://192.168.0.10:8000訪問到項目。

圖2-14 非PyCharm Professional下修改host和port

主站蜘蛛池模板: 巴林右旗| 安泽县| 岗巴县| 新闻| 大丰市| 开鲁县| 吴桥县| 工布江达县| 乌恰县| 南京市| 石狮市| 波密县| 珠海市| 青海省| 元阳县| 巴林右旗| 东台市| 秭归县| 隆子县| 玛曲县| 华亭县| 衡水市| 遵化市| 十堰市| 平定县| 太谷县| 安达市| 武宣县| 申扎县| 和林格尔县| 轮台县| 苏州市| 龙口市| 宁蒗| 龙门县| 西城区| 临沂市| 连江县| 康马县| 买车| 顺义区|