python Web應用框架之Flask

2021-08-23 12:13:36 字數 2013 閱讀 5934

pip install flask

以下是乙個簡單的flask應用:

from flask import flask

def hello_world():

return 'hello world!'

if __name__ == '__main__':

執行:

$ python hello.py

* running on

首先,我們匯入了 flask 類。這個類的例項將會是我們的 wsgi 應用程式。

接下來,我們建立乙個該類的例項,第乙個引數是應用模組或者包的名稱。 如果你使用單一的模組(如本例),你應該使用 __name__ ,因為模組的名稱將會因其作為單獨應用啟動還是作為模組匯入而有不同( 也即是 '__main__' 或實際的匯入名)。這是必須的,這樣 flask 才知道到哪去找模板、靜態檔案等等。詳情見 flask的文件。

然後,我們使用 route() 裝飾器告訴 flask 什麼樣的url 能觸發我們的函式。

這個函式的名字也在生成 url 時被特定的函式採用,這個函式返回我們想要顯示在使用者瀏覽器中的資訊。

最後我們用 run() 函式來讓應用執行在本地伺服器上。 其中 if __name__ =='__main__': 確保伺服器只會在該指令碼被 python 直譯器直接執行的時候才會執行,而不是作為模組匯入的時候。

欲關閉伺服器,按 ctrl+c。

二、在開發時,如果啟動除錯模式,則伺服器自動會載入修改後的**,不需要手動重啟服務,不過這種模式不可以用在生產環境

三、允許服務公開訪問

四、開啟多執行緒

五、日誌記錄

import logging

from flask import flask

def hello_world():

return 'hello world!'

if __name__ == '__main__':

handler = logging.filehandler('flask.log',encoding='utf-8')

handler.setlevel(logging.debug)

logging_format = logging.formatter(

'%(asctime)s - %(levelname)s - %(filename)s - %(funcname)s - %(lineno)s - %(message)s')

handler.setformatter(logging_format)

setlevel:設定日誌輸出級別

setformatter:設定日誌輸出格式

可以快速定位到哪行**出錯

%(name)s

logger的名字

%(levelno)s

數字形式的日誌級別

%(levelname)s

文字形式的日誌級別

%(pathname)s

呼叫日誌輸出函式的模組的完整路徑名,可能沒有

%(filename)s

呼叫日誌輸出函式的模組的檔名

%(module)s

呼叫日誌輸出函式的模組名

%(funcname)s

呼叫日誌輸出函式的函式名

%(lineno)d

呼叫日誌輸出函式的語句所在的**行

%(created)f

當前時間,用unix標準的表示時間的浮 點數表示

%(relativecreated)d

輸出日誌資訊時的,自logger建立以 來的毫秒數

%(asctime)s

字串形式的當前時間。預設格式是 「2003-07-08 16:49:45,896」。逗號後面的是毫秒

%(thread)d

執行緒id。可能沒有

%(threadname)s

執行緒名。可能沒有

%(process)d

程序id。可能沒有

%(message)s

使用者輸出的訊息

python web框架之Tornado的簡單使用

python web框架有很多,比如常用的有django,flask等。今天主要介紹tornado tornado是乙個用python寫的相對簡單的 不設障礙的web伺服器架構,用以處理上萬的同時的連線口,讓實時的web服務通暢起來。雖然跟現在的一些用python寫的web架構相似,比如django...

python Web開發之Flask框架學習

2.3.1 程式和請求上下文 flask從客戶端收到請求時,要讓檢視函式能訪問一些物件,這樣才可以處理請求。請求物件是乙個很好的例子,他封裝了客戶端傳送的http請求。2.6 flask擴充套件 flask被設計成可擴充套件模式,因此沒有提供一些重要的功能,例如資料庫和使用者認證,所以開發者可以自由...

Python Web開發之Flask框架(一)

flask是乙個python語言編寫的web框架 微框架 核心功能 請求響應處理 werkzeug 和模板渲染 jinja模板渲染庫 coding utf 8 from flask import flask def index return if name main 0.0.0.0 debug tr...