第一章 初識Flask
本章主要介紹了一些關於Flask開發的基本配置問題
開發環境的搭建
使用Pipenv管理Python包
使用pip、Pipflie和Virtualenv替換pip、virtualenv、requirements.txt。它讓包安裝、包依賴管理和虛擬環境管理更加方便,使用它可以實現高效的Python項目開發工作流。
安裝
pip install pipenv
創建虛擬環境
進入項目的工作目錄,使用如下命令,會生成一個python虛擬環境,虛擬環境名字是項目名+一串隨機字符。
pipenv install
在項目工作目錄下,使用如下命令激活環境
pipenv shell
# 使用如下兩個命令可以退出環境
exit
deactivate
或者使用如下命令單次使用虛擬環境運行程序
pipenv run python temp.py
管理依賴
使用pipenv install在項目根目錄下創建會生成Pipfile和Pipfile.lock,兩個文件,前者記錄依賴包,後者記錄詳細的依賴包列表情況
在新的環境下使用如下命令安裝Pipfile文件中的包到新的虛擬環境中。
pipenv install
# 如果需要安裝開發環境依賴包則需要如下命令,纔會安裝Pipfile中的dev-package部分
pipenv install --dev
想要安裝包在虛擬環境中,最好使用pipenv install <包名>進行安裝,會直接把包加到Pipfile中。
使用如下命令查看依賴包的依賴情況。
pipenv graph
hello Flask
對於簡單程序而言,主模塊一般命名爲app.py
from flask import Flask
app = Flask(__name__)
在一個Web應用中,客戶端和服務器上的Flask程序的交互可以簡單概括爲以下幾步:
1、在瀏覽器中輸入URL訪問某個資源
2、Flask接收用戶請求並分析URL
3、爲URL找到處理函數
4、執行函數生成響應,返回瀏覽器
5、瀏覽器接收解析,展示頁面
大部分都有Flask完成,使用app.route()裝飾器,建立URL和函數之間建立關聯。這個過程爲 註冊路由 ,這個函數成爲 視圖函數 。
在動態路由中設置默認值
@app.route("/greet", defaults={'name':'pro'})
@app.route("/greet/<name>")
def greet(name):
return "<h1>hello %s!</h1>" % name
等價於
@app.route("/greet")
@app.route("/greet/<name>")
def greet(name='pro'):
return "<h1>hello %s!</h1>" % name
啓動開發服務器
從0.11開始,替代舊的app.run()的形式使用如下命令啓動Flask
flask run
常用命令如下,默認生產環境,修改爲開發環境後debug默認開啓
export FLASK_APP=hello.py
export FLASK_ENV=development
flask run
# 或
flask run --host=127.0.0.1 --port=7000
自動尋找規則
- 從當前目錄尋找app.py和wsgi.py模塊,尋找名爲app或application的程序實例
- 從環境變量FLASK_APP中尋找名app或application
修改環境變量,文件名爲hello.py
# Linux或MacOS
export FLASK_APP=hello
# Windows
set FLASK_APP=hello
PyCharm進行運行配置修改,修改後點擊右上角的圖標進行運行和debug(不能右鍵debug),
Flask官網PyCharm配置
修改默認的重載器
默認使用Werkzeug的內置stat重載器,缺點好點,準確性一般(確實一般反應遲鈍),替換另一個用於文件變動的庫Watchdog。
pipenv install watchdog --dev
–dev是開發時候的依賴,只有在開發室用到。在Pipfile文件中添加到dev-packages部分。
瀏覽器如果有緩存某些文件使用,忽略緩存重載頁面
強制刷新網頁:Ctrl/Shift + F5
修改配置參數
配置文檔地址:http://flask.pocoo.org/docs/latest/config
使用update修改單個、多個值:
app.config['TESTING'] = True
app.config.update(
TESTING=True,
SECRET_KEY=b'_5#y2L"F4Q8z\n\xec]/'
)
還可以把配置變量存儲在單獨的 Python 腳本、JSON 格式的文件或是 Python類中, config 對象提供了相應的方法來導人配置。
實現類似flask run的命令的方式
flask中的click:https://flask.palletsprojects.com/en/1.1.x/cli/#custom-commands
click官方文檔: https://click.palletsprojects.com/