Flask自學日誌

2021-09-20 18:59:50 字數 2022 閱讀 1510

flask是使用python編寫的web微框架。web框架可以讓我們不用關心底層的請求響應處理,更方便高效地編寫web程式。因為flask核心簡單且易於擴充套件,所以被稱作微框架(micro framework)。flask有兩個主要依賴,乙個是wsgi(web server gateway inte***ce,web伺服器閘道器介面)工具集——werkzeug,另乙個是jinja2模板引擎。flask只保留了web開發的核心功能,其他的功能都由外部擴充套件來實現,比如資料庫整合、表單認證、檔案上傳等。

名稱說明

資源jinja2

模板渲染引擎

主頁:原始碼:

markupsafe

html字元轉義工具

主頁:werkzeug

wsgi工具集,處理請求與響應,內建wsgi開發伺服器、偵錯程式和過載器

主頁:click

命令列工具

主頁:itsdangerous

提供各種加密簽名功能

主頁:所有 flask 應用都必須建立乙個應用例項。web 伺服器使用一種名為 web 伺服器閘道器介面

(wsgi,web server gateway inte***ce,讀作「wiz-ghee」)的協議,把接收自客戶端的所有請求都

轉交給這個物件處理。應用例項是 flask 類的物件,通常由下述**建立:

from flask import flask
在乙個web應用裡,客戶端和伺服器上的flask程式的互動可以簡單概括為以下幾步:

(1)使用者在瀏覽器輸入url訪問某個資源。

(2)flask接收使用者請求並分析請求的url。

(3)為這個url找到對應的處理函式。

(4)執行函式並生成響應,返回給瀏覽器。

(5)瀏覽器接收並解析響應,將資訊顯示在頁面中。

路由中的動態部分預設使用字串,不過也可以是其他型別。例如,路由 /user/< int:id >只會匹配動態片段 id 為整數的 url,例如 /user/123。flask 支援在路由中使用string、int、float和path型別。path型別是一種特殊的字串,與 string 型別不同的是,它可以包含正斜線。

# 靜態路由方法一

def index():

return ''

# 靜態路由方法二

# 動態路由 設定預設值

def user(name):

return ''.format(name)

flask通過依賴包click內建了乙個cli(command line inte***ce,命令列互動介面)系統。當我們安裝flask後,會自動新增乙個flask命令指令碼,我們可以通過flask命令執行內建命令、擴充套件提供的命令或是我們自己定義的命令。其中flask run命令用來啟動內建的開發伺服器。確保執行命令前啟用了虛擬環境(pipenv shell),否則需要使用pipenv run flask run命令啟動開發伺服器。

一般來說,在執行flask run命令執行程式前,我們需要提供程式例項所在模組的位置,但有時候flask會自動查詢程式。

flask自動探測存在下面這些規則:

#windows 下為 set

export flask_debug=1 # 開啟除錯模式

export flask_env=development # 開發環境

flask run

flask run命令執行的開發伺服器缺省會監聽位址(按crtl+c退出),並開啟多執行緒支援。我們在上面啟動的web伺服器預設是對外不可見的,可以在run命令後新增–host選項將主機位址設為0.0.0.0使其對外可見:

flask run --host=0.0.0.0

這會讓伺服器監聽所有外部請求。個人計算機(主機)一般沒有公網ip(公有位址),所以你的程式只能被區域網內的其他使用者通過你的個人計算機的內網ip(私有位址)訪問,

Flask自學筆記(1)

命令 說明注意 pip install pipenv 從pypi 上安裝pipenv pipenv install 建立虛擬環境 虛擬環境資料夾在路徑c users 使用者名稱 virtualenvs 目錄下 pipenv shell 啟用 進入 虛擬環境 pip list 檢視當前環境安裝包 在虛...

Flask 日誌記錄

最近專案需要用到flask日誌模組來記錄日誌,這裡做下記錄 from flask import flask import logging 匯入日誌模組 日誌系統配置 設定日誌檔案,和字元編碼 logging format logging.formatter asctime s levelname s...

flask日誌使用

from flask import flask,request import logging 設定日誌輸出到檔案中,而不是顯示到網頁 propagate exceptions false class requestformatter logging.formatter 自定義日誌格式化類,實現自定義...