Flask是一個使用Python編寫的輕量級Web應用架構,憑借更靈活、輕便、安全且容易上手的特性,成為企業常用的Python架構之一。在完成Web前端、Linux以及MySQL相關的課程之後,專業的Python教育訓練班都會講解Flask架構知識,以下是小編整理的相關知識點。
Flask
Flask是一個基于Python開發并且依賴jinja2模闆和Werkzeug WSGI服務的一個微型架構,對于Werkzeug本質是Socket服務端,其用于接收http請求并對請求進行預處理,然後觸發Flask架構。開發人員基于Flask架構提供的功能對請求進行相應的處理,并傳回給使用者,如果要傳回給使用者複雜的内容時,需要借助jinja2模闆來實作對模闆的處理,即:将模闆和資料進行渲染,将渲染後的字元串傳回給使用者浏覽器。
預設情況下,Flask不包含資料庫抽象層、表單驗證,或是其它任何已有多種庫可以勝任的功能。然而,Flask支援用擴充來給應用添加這些功能,如同是Flask本身實作的一樣。衆多的擴充提供了資料庫內建、表單驗證、上傳處理、各種各樣的開放認證技術等功能。
Flask架構的特點:
1)Flask自由、靈活,可擴充性強,第三方庫的選擇面廣,開發時可以結合自己最喜歡用的輪子,也能結合最流行最強大的Python庫;
2)入門簡單,即便沒有多少web開發經驗,也能很快做出網站;
3)非常适用于小型網站;
4)非常适用于開發Web服務的API;
5)開發大型網站無壓力,但代碼架構需要自己設計,開發成本取決于開發者的能力和經驗。
Flask架構運作解釋
1.app = Flask(__name__)
建立Flask對象app,Flask類的構造函數隻有一個必須指定的參數,即程式主子產品或包的名字。在大多數程式中,Python的__name__變量就是所需要的值。
[email protected]('/')
web浏覽器把請求發送給Web伺服器,Web伺服器再把請求發送給Flask程式執行個體。程式執行個體需要知道對每個URL請求運作哪些代碼,是以儲存了一個URL到Python函數的映射關系。處理URL和函數之間的關系的程式稱為路由。在Flask程式中定義路由的最簡便方式,是使用程式執行個體提供的app.route修飾器,把修飾的函數注冊為路由。route()裝飾器告訴 Flask什麼樣的URL 能觸發我們的函數。這和Java中的注釋有異曲同工之妙。修飾器是Python語言的标準特性,可以使用不同的方式修改函數的行為。慣常用法是使用修飾器把函數注冊為事件的處理程式。
3.def index():函數
index()函數放在@app.route('/')後面,是以就是把index()函數注冊為路由。如果部署程式的伺服器域名為
http://127.0.0.1:5000/,在浏覽器中通路
http://127.0.0.1:5000/後,會觸發伺服器執行index()函數。
[email protected]('/user/')
同@app.route('/'),如果部署程式的伺服器域名為
,在浏覽器中通路
後,會觸發伺服器執行下方修飾函數。
5.app.run(debug=True)
程式執行個體用run方法啟動Flask繼承Web伺服器。
6.if name == '__main__'
當Python解釋器,讀py檔案,它會執行它發現的所有代碼。在執行代碼之前,它會定義一些變量。例如,如果這個py檔案就是主程式,它會設定__name__變量為"__main__"。如果這個py被引入到别的子產品,__name__會被設定為該子產品的名字。