文章目錄
一、啟動flask
1. flask run
2.自動發現程式例項
3.使伺服器外部可見
二、設定執行環境
1.偵錯程式
2.過載器
總結flask
通過依賴包
click
內建了乙個
cli(
command line inte***ce,命令列互動介面)系統。當我們安裝
flask
後,會自動新增乙個
flask
命令腳
本,我們可以通過flask命令執行內建命令、擴充套件提供的命令或是我們自己定義的命令,可以執行falsk--help檢視所有可用的命令。其中,
flask run
命令用來啟動內建的開發伺服器。flask run命令執行的開發伺服器會預設監聽並開啟多執行緒支援。
在開發時如果我們使用的ide是pycharm的話,那麼使用pycharm內建的執行功能會更方便。
上面我們可以直接flask run執行程式是因為flask會根據以下規則自動探測程式例項:
我們在上面啟動的web伺服器預設是對外不可見的,在日常開發中會有同前端對接測試資料的情況,這時候我們要在flask run命令後新增
--host選項將主機位址設定為0.0.0.0使其對外可見
這時伺服器會監聽所有外部請求,但是因為我們電腦沒有公網ip,所有只能區域網內的其他電腦通過我們的內網ip訪問,比如我的內網ip是192.168.1.188,
當區域網內其他使用者訪問時,就會看到瀏覽器裡顯示「hello flask !」
flask提供的web伺服器預設監聽的是5000埠,我們也可以在啟動時傳入--port引數來改變它
當然,我們也可以通過環境變數flask_run_host和flask_run_port設定ip和埠
開發環境是指我們在本地編寫和測試程式時的計算機環境
生產環境指的是**部署上線供使用者訪問時的伺服器環境
根據執行環境的不同,flask程式、擴充套件以及其他程式會改變相應的行為和設定。為了區分程式執行環境,
flask提供了乙個flask_env環境變數用來設定環境,預設為production,在我們開發時可以將其設為development,
這回開啟所有支援開發的特性
在 開發環境下,除錯模式(debug mode)將被開啟,這時執行flask run命令啟動程式會自動啟用werkzeug內建的偵錯程式(debugger)
和過載器(reloader)。如果想單獨控制偵錯程式模式的開關,可以通過flask_debug變數設定,1為開啟,0為關閉。
werkzeug提供的偵錯程式非常強大,當程式出錯時,我們可以在網頁上看到詳細的錯誤追蹤資訊,在除錯錯誤時非常有用
偵錯程式允許我們在錯誤頁面上執行python**,單擊錯誤資訊右側的命令列視窗,會彈出乙個視窗讓我們輸入pin碼,這個pin碼就是啟動服務時
命令列視窗列印出來的 debugger pin。輸入pin碼之後會開啟乙個包含**上下文資訊的python shell,我們可以利用它來進行除錯
當我們對**做了修改之後,期望的行為是這些改動立刻作用到程式上。過載器的作用就是檢測檔案變動,然後重新啟動開發伺服器,當我們修改
了**並儲存之後,會在命令列看到如下輸出:
缺省會使用werkzeug內建的stat過載器,它的缺點是好點比較嚴重,而且準確性一般。我們可以安裝另乙個用於檢測檔案變動的python庫watchdog,
安裝後werkzeug會自動使用它來檢測檔案變動,pip install watchdog.
需要注意的是,如果專案中使用了css或js檔案時,瀏覽器可能會快取這些檔案,從而導致對檔案做出的修改不能立刻生效,可以crtl+f5或shift+f5執行
硬過載,即忽略快取並過載頁面
學習中成長
python的偵錯程式 Python 偵錯程式入門
python 生態系統包含豐富的工具和庫,可以讓開發人員更加舒適。例如,我們之前已經介紹了如何使用互動式 shell 增強 python。本文重點介紹另一種可以節省時間並提高 python 技能的工具 python 偵錯程式。python 偵錯程式 python 標準庫提供了乙個名為 pdb 的偵錯...
常見偵錯程式
工欲善其事,必先利其器 在進行軟體除錯或者逆向工程時,我們需要很多輔助工具,其中偵錯程式是最重要的工具之一。根據除錯物件偵錯程式分類為使用者態和核心態。使用者態偵錯程式只能除錯環3 ring3 許可權的應用程式,大多數應用程式均屬於此類程式。核心態偵錯程式能除錯環0 ring0 許可權的應用程式,驅...
GDB偵錯程式
偵錯程式gdb 一 啟動和退出gdb gdb除錯的物件是可執行檔案,而不是程式的源 如果要使乙個可執行檔案可以被gdb除錯,那麼在使用編譯器gcc編譯程式時需要加入 g選項。gdb除錯乙個程式的命令格式是 gdb 程式檔名 也可以在linux提示符下,直接輸入gdb,然後使用file命令裝入要除錯的...