怎樣學習flask

2021-09-27 06:12:23 字數 2517 閱讀 1132

怎樣徹底學習flask框架?怎樣學習順序比較合理?

1.web框架需要快速入門

​ web框架是一組工具的集合, 為你的web應用開發提供了基礎環境, 從如何獲取引數,到如何返回結果, 從如何獲取cookie到如何修改返回的http header。web框架幫你隱藏了http協議的細節, 你作為乙個使用者只需要關心如何實現功能,而不需要底層到底實現的是什麼。

2.web框架很多, 不同的語言都有自己實現的不同的web框架. 每一種都有各自不同的實現思路, 有不同的開發哲學, 不管是就換工作換開發棧的需要, 還是學習本身的需要, 快速的多掌握幾個框架還是很有必要的.

3.web框架的工作方式

現代的web框架,不管其採用何種設計思想, 開發哲學, 根本的工作模式是相似的,均是從接收http請求,處理http的各項引數,路由到相應的使用者實現的處理器上, 再獲取返回的結果, 生成http的response。

流程圖: blockchain

4.web框架的工作流程

url路由

​ 一般來說現在大部分的web框架對於將http請求交給哪乙個邏輯來處理, 是由url路由框架的模組來決定的. url路由模組會提供一些函式或者裝飾器等方式, 讓使用者來寫一些**, 將url和控制器的繫結關係註冊到框架中. 大多數的框架都支援在url路由的定義中使用正規表示式.有的支援在url中定義引數,框架會自動在url中將引數擷取出來儲存在框架的上下文中以供控制器使用.

控制器​ 控制器是使用者自己實現的類或者函式, 用來處理http請求, 確切的說是指定url發來的請求, 並且將業務邏輯的結果返回給框架,有框架去決定如何解析成http的響應資料輸出.框架需要給控制器提供http請求的完整上下文環境,那麼我們在學習框架使用的時候, 首先就要在文件中整理清楚下面的這些問題:

如何獲取query string引數?

​ querystring是url中?後定義的由&符號分割的key=value形式的引數, 框架會在解析http協議的時候將這個部分的資料轉化成比如字典之類的資料結構存起來, 然後提供相應的api去訪問.但是querystring都是唯讀的, 有一些框架會提供一些工具幫助使用者組裝url, 比如flask提供了url_for用來組裝轉跳到指定控制器的url, 方便你在頁面上渲染相應的標籤

如何獲取form表單的資料? json?boby ?

如何讀取和修改cookie?

​ cookie是瀏覽器(客戶端)在多次請求之間共享資料的乙個資料結構, 因為http協議是無狀態的,所以cookie在每一次請求的時候都會從瀏覽器放到http請求中傳到服務端, 在服務端生成響應的時候也會寫入http響應裡傳回瀏覽器. 從而實現了在兩次請求之間共享了資料. web框架會提供對應的api去讀取和修改cookie的值, cookie是key-value形式的, 訪問的方式應該和字典類似.

如何獲取 headers ?

​ headers對應到http協議中http請求的頭部, 是乙個key-value形式的資料格式.headers是http請求的一些額外的描述資訊, 比如客戶端型別, 字元編碼方式, 認證資訊等. headers的key是固定的, 你不能自己隨便定義一些特殊key, 並且headers部分也是唯讀的.框架會提供對應api去讀取headers.

如何實現頁面轉跳 ?

​ 有些時候在處理完資料後需要通知瀏覽器轉跳到對應的看資料的url上去, 就需要在文件裡找找如何實現頁面轉跳. 服務端返回給客戶端乙個http協議中的301或者302的狀態, 就可以讓瀏覽器去執行轉跳的動作, 作出這樣子的http響應在框架中會有對應的api.

如何輸出http響應 ?

流程圖如下:

5.web框架所需的開發環境

web框架的開發環境由其實現的語言來決定, 比如說python的pycharm 和 vscode 等 ide 整合環境。

6.web框架一些常用的配置檔案

配置web框架的一些引數,這需要直接看配置檔案或者自定義配置檔案

7.web框架所需要的模版引擎

​ 前面在控制器的部分提到了模板引擎, 模板引擎主要負責用資料替換模板上的佔位符生成最終結果的文字. 工作方式可以簡化為下圖:

這裡詳細的說一下模板引擎部分在學習的時候要注意那一些要點:

佔位符如何定義

如何定義迴圈

如何定義判斷條件

如何對佔位符加過濾器

如何定義繼承模板

如何定義巢狀模板

8.web框架的中介軟體或者鉤子函式

9.統一的錯誤處理

​ 框架是提供了統一錯誤處理機制的, 當在控制器中發生了沒有捕獲或者重新丟擲的異常的時候, 就會執行到統一錯誤處理的部分。

10.鑑權

​ 通過cookie或者auth2.0和中介軟體可以很輕鬆的實現鑑權和session機制。

11.生產部署的方式

​ 盡可能的做壓力測試, 以至於讓你的專案能夠正式的上線, 需要了解如何部署生產環境。

怎樣生成xml 怎樣學習flask

怎樣徹底學習flask框架?怎樣學習順序比較合理?1.web框架需要快速入門 web框架是一組工具的集合,為你的web應用開發提供了基礎環境,從如何獲取引數,到如何返回結果,從如何獲取cookie到如何修改返回的http header。web框架幫你隱藏了http協議的細節,你作為乙個使用者只需要關...

FLask學習筆記 Flask概念(一)

1.程式例項 flask類的物件,只有乙個強制指定的引數 程式主模組或包的名字。通常用如下 建立 from flask import flask2.路由和檢視函式 處理url和函式之間關係的程式稱為路由。def index return hello world 上圖中index 即為檢視函式 動態路...

Flask學習筆記

web 發展至今,特別是伺服器端,涉及到的知識 內容,非常廣泛。這對程式設計師的要求會越來越高。如果採用成熟,穩健的框架,那麼一些基礎的工作,比如,網路操作 資料庫訪問 會話管理等都可以讓框架來處理,那麼程式開發人員可以把精力放在具體的業務邏輯上面。使用web框架開發web應用程式可以降低開發難度,...