Falsk簡介
Flask是非常流行的Python Web框架,流行的主要原因有:
- 文件齊全, 上手快- 本身核心足夠精簡, 有非常好的擴充套件機制和第三方擴充套件環境(熟悉node的童鞋類比Express/Koa)- 社群活躍度高- 開發者自由有很大的選擇空間複製程式碼
Falsk主要依賴三個庫:
- Jinja2: 預設的模班引擎- Werkzeug: 一個包含WSGI, 路由, 除錯的工具集- Itsdangerous: 基於Django的簽名模組複製程式碼
安裝Python
安裝pyenv
安裝pipenv
pipenv被譽為新一代Python專案環境與依賴管理工具。
flask的最小應用
想看英文文件的可以閱讀Basic Usage of Pipenv。
- 建立一個工作目錄, 使用pipenv shell.
- 安裝flask, 通過pipenv install flask
- pycharm基本配置
這裡主要是配置你的開發環境, 你需要配置對應專案的直譯器複製程式碼
- 專案的目錄結構以及最小的flask應用
# 匯入Flask類, 該類的例項作為我們的WSGI應用from flask import Flask# 建立例項, 傳入應用模組名字或者包名, 這個引數是必須的# 一般傳入__name__來確定程式的根目錄app = Flask(__name__)# 通過路由裝飾器, 把路由與檢視進行對映@app.route('/')def hello_world(): return 'Hello, World!'# 如果是其他檔案引用該模組檔案是不會執行app.run()if __name__ == '__main__': app.run()複製程式碼
啟動之後你在瀏覽器能看到:
值得注意的是,預設的app.run啟動服務後, Flask只會監聽虛擬機器的本地127.0.0.1這個地址, 埠為5000。 這個時候我們用ip去訪問是會報錯的,所以我們最好修改下host, port。
你去檢視app.run()的原始碼可以看到:
def run(self, host=None, port=None, debug=None, load_dotenv=True, **options):複製程式碼
所以我們只需要這樣改:
# 0.0.0.0表示監聽所有地址, 這樣其他電腦就可以訪問你的程式了。if __name__ == '__main__': app.run(host='0.0.0.0', port='9999')複製程式碼
除錯模式
上面原始碼中我們發現還可以傳遞一個debug選項, 相信大多數人應該猜到了除錯。 是的設定debug為True, 即開啟除錯模式。
開啟除錯模式有如下好處:
- 伺服器在程式碼修改後自動重新載入(node有nodemon)
- 發生錯誤時會提供一個獲得錯誤上下文執行程式碼的除錯頁面
開啟除錯模式的方法有:
# 在應用物件上設定app.debug = True# 作為run引數傳入app.run(debug=True)複製程式碼
值得注意的是除錯模式僅用於開發環境, 生產環境我們一般使用Nginx+uWSGI。