宣告:以下內容均為我個人的理解,如果發現錯誤或者疑問可以聯絡我共同探討
簡介
Flask是由Armin ronacher於2010年用Python語言基於 Werkzeug 工具箱編寫的輕量級Web開發框架。
特點
Flask只提供核心功能,其他幾乎所有的功能都需要用到擴充,比如可以通過Flask-SQLAlchemy擴充對資料庫進行操作等等。
核心
由Werkzeug與Jinja2組成,Werkzeug是一個全面的WSGI Web應用程式庫,Jinja是一種現代且設計友好的Python模板語言。
Flask常用擴充套件
- Flask-SQLalchemy:運算元據庫
- Flask-script:插入指令碼
- Flask-migrate:管理遷移資料庫
- Flask-Session:Session儲存方式指定
相關文件
Flask初體驗
安裝並使用虛擬環境
virtualenv 建立和管理虛擬環境
# 安裝
pip install virtualenv
# 建立
virtualenv flask_env
# 使用
source flask_env/bin/activate
Pipenv 建立和管理虛擬環境
# 安裝
pip install pipenv
# 建立
pipenv install
# 使用
pipenv shell
安裝指定版本flask框架
sudo pip install flask==1.0.2
建立一個檔案,並帶入編寫第一個Flask程式
touch helloflask.py
vim helloflask.py
在檔案中寫入以下程式碼
# 匯入Flask類
from flask import Flask
# 傳遞__name__引數,建立一個叫app的Flask例項,該例項將會成為我們的 WSGI 應用。
app = Flask(__name__)
# 通過route裝飾器來告訴Flask觸發函式的URL
@app.route('/')
# index檢視函式,在訪問根路徑時會呼叫該函式通過其返回值得到結果
def index():
return 'Hello Flask'
if __name__ == '__main__':
# 通過run方法啟動web伺服器
app.run()
退出編輯模式,執行該程式
python helloflask.py
可以看到以下結果
這樣就啟動了一個非常簡單的內建的伺服器。這個伺服器用於測試應該是足夠了,但是 用於生產可能是不夠的。現在在瀏覽器中開啟 127.0.0.1:5000/ ,應該可以看到 Hello Flask! 字樣。
相關配置引數
初始化引數
建立Flask專案的第一步就是例項化Flask物件,以下是例項化物件需要的引數詳解
import_name:Flask程式所在的包(模組),傳
__name__
就可以,static_url_path:靜態檔案訪問路徑,可以不傳,預設為:
/ + static_folder
static_folder:靜態檔案儲存的資料夾,可以不傳,預設為
static
static_host:使用遠端主機儲存靜態檔案的地址,預設為None。當host_matching為True時,可以通過static_folder配置靜態檔案儲存的資料夾
host_matching:設定
url_map.host_matching
屬性,預設為Falsesubdomain_matching:匹配路由時,請考慮與以下項相關的子域:data:`SERVER_NAME’。預設為False。
template_folder:模板檔案儲存的資料夾,可以不傳,預設為
templates
instance_path:預設情況下,應用程式的備用例項路徑假定包或模組旁邊的資料夾“instance”為例項路徑。
instance_relative_config:如果將用於載入配置的相對檔名設定為“True”,則假定該檔名相對於例項路徑而不是應用程式根。
root_path:預設情況下,Flask將自動計算應用程式根路徑。在某些情況下,這無法實現(例如,如果包是Python 3名稱空間包),需要手動定義。
程式載入配置
在Flask程式執行前,我們可以給Flask設定相關配置,例如ENV(應用程式在什麼環境中執行),DEBUG(是否啟用除錯模式)TESTING(啟用測試模式)等配置,常見的有兩種方式來實現.
從配置檔案中載入:
app.config.from_pyfile()
建立一個配置檔案
touch config.ini vim config.ini
寫入配置資訊
DEBUG = True
選擇從配置檔案載入
# 建立 Flask 類物件,指向程式所在的包的名稱 app = Flask(__name__) # 從配置檔案中載入配置 app.config.from_pyfile('config.ini')
從配置物件中載入:app.config.from_object()
建立一個配置類,然後將類名傳入即可
# 配置類 class ConfigObject(object): DEBUG = True # 建立 Flask 類物件,指向程式所在的包的名稱 app = Flask(__name__) # 從配置物件中載入配置 app.config.from_object(Config)
程式執行配置
這個demo中Flask專案程式啟動的入口是app.run()。常見的配置選項有host, port,debug,分別是設定執行主機的ip地址,埠號,是否開啟除錯模式,當配置檔案與這裡都有debug時,最終會以這裡的debug為準。
app.run(host="127.0.0.1", port=8000)
路由
在Web開發中,路由是一種將URL轉發到對應檢視的程式。
本作品採用《CC 協議》,轉載必須註明作者和本文連結