Flask1 0 2系列(一) 前言

2021-08-19 02:48:29 字數 1226 閱讀 1592

若有翻譯錯誤或者不盡人意之處,請指出,謝謝~        

此章節主要是一些問題的回答,如在專案中使用flask的目標,以及在什麼情況下可以使用flask,而在什麼情況下不建議使用flask。

這裡所說的微型並不是指你的整個web程式在乙個python檔案就可以實現完成(儘管這個是可能的),也不是說flask在功能上有很大的缺陷甚至是沒有實現。這裡的微型全稱是微型框架(microframework),它表示flask的目的是保持精簡的核心功能,且是可擴充套件的。flask在某些方面並沒有規定你必須這麼做,比如flask並沒有限制你必須使用何種資料庫。flask只是規定了一些你能夠輕易改變的決定,比如說使用什麼模板引擎(templating engine)。在flask的世界中,所有的決定都在於你(使用者),因此flask可以成為你需要的樣子,拋棄掉你所不需要的東西。

預設情況下,flask不包含資料抽象層、表單驗證或者其他任何可以處理某乙個問題的庫。相反,flask支援將這些額外的功能新增到你的應用程式中,且這些功能就像是flask自身實現了一樣。這些額外的功能(稱之為擴充套件)提供了像是資料庫繼承、表單驗證、上傳處理、以及各種開放認證技術等等。flask在某種意義上來說確實是微型的,但它對於實現我們的各種需求做好了準備。

flask有很多擁有合理預設值的配置項,以及啟動時需要的一些約定項。對於約定項,模板檔案和靜態檔案必須儲存在應用程式的python原始檔樹的子目錄中,名字分別為templates(儲存模板檔案)和static(儲存靜態檔案)。雖然這種約定是可以改變的,但通常情況下我們是不會去更改這些約定的。

當你需要建立flask的應用程式時,你可以在社群找到各種你需要的且可使用的擴充套件,以便你將這些功能整合到你的程式中。flask的核心團隊會長期審查擴充套件並且確保批准發布的擴充套件的版本會一直更新。

隨著你的**庫不斷地增長,你可以根據你的專案做出適當的設計決策。flask會一直提供乙個非常簡單的粘合層作用,以達到python提供的最佳效果。你可以在sqlalchemy或者其他資料庫工具中使用高階模式,也可以在合適的時機引進非關係型資料庫進行持久化儲存,甚至看可以使用一些不知名的框架來實現wsgi,也就是python的web介面。

flask包含很多鉤子來自定義它的行為。如果你想要更多的自定義行為,那麼可以為flask類建立子類來實現。如果你對這個感興趣,請閱讀

becoming big(因為我不感興趣,所以自己去官網看吧)。如果你對flask的設計原則充滿好奇,請閱讀

design decisions in flask(我沒有好奇心。。。先學會應用,以後好奇了我再決定看不看)。

Flask 1 02 安裝環境

使用虛擬環境安裝flask,這樣你可以隔離不同版本的開發軟體,需要使用不同版本的python直譯器也不會起衝突。確保了每乙個專案都在獨立的環境中執行。sudo pip install virtualenv virtualenv version 1 建立目錄用來存放虛擬環境 mkdir home vi...

MySQL系列一 前言

mysql大體來講分為兩部分 service層,儲存引擎層 1 service層 查詢快取 命中則直接返回結果,以key value形式存放在記憶體中,如果表 現更新操作,則快取全部失效,在mysql8.0版本之後已經去掉這個模組 分析器 詞法,語法分析,檢查你的sql是否有一場 優化器 執行計畫生...

Android最火的框架系列(一)前言

工作前兩年,在一家手機公司做android原生開發,做的是手機系統應用開發,很少使用框架進行開發。請原諒我這個原生開發者,從沒用過android的任何一款框架,從來都是自己一行一行的擼 今年4月份,因為一些原因回到了老家,去面試找工作。面試官演算法不問你,資料結構不問你,android原生的api不...