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。