Flask簡介

“micro”的意義

  ‘micro’並不意味着整個web應用必須融入到一個單python文件(儘管一定能),也不以意味這Flask缺少一些功能。微框架(microframework)中的’micro’意味着Flask旨在保持簡單但可擴展這個核心。Flask不會做任何決定,比如用什麼數據庫。Flask所做的決定很容易去改變,比如使用什麼模版引擎。其它任何事情都由開發者來決定,因此,Flask可以是開發者需要的一切和不需要的任何東西。

   默認情況下,Flask不包含數據庫抽象層,表單確認或任何已經存在可以處理表單確認的庫。然而,Flask支持擴展添加到這樣的功能到應用中,就像Flask自己實現的一樣。許多擴展提供數據庫集成,表單確認,上傳處理,各種開源認證技術等等。Flask可能是微小,但是已經準備好各種生產使用的需求。

配置和約定

  啓動後,Flask有很多帶有合理默認值的配置值和一些規定。爲方便,模版和靜態文件存儲在帶有應用的python源碼數的子目錄下,名字分別爲templates和static。當然也可以更改,但通常不必修改,尤其是啓動後。

成長的Flask

一旦啓動運行Flask,可以在社區找到各種擴展應用應用到生產中的項目中。Flask核心團隊評估擴展並保證提供的擴展不會改變之後的版本。

隨着代碼庫增長,可以自由地爲項目做設計決定。Flask會繼續提供非常簡單的最好的python必須提供的粘合層。可以使用SQLAlchemy或其它數據庫工具的高級功能、適當引入非關係型數據持久化、可以使用與框架無關的工具建立python web接口WSGI。

Flask的本地線程

Flask的設計決策之一是,簡單任務就應該是簡單的,不應該需要大量代碼,也不應該限制開發者。正因爲如此,Flask可以有很多設計選擇。例如,Flask內部使用本地線程對象,這樣爲保持線程安全要求,不必要把對象在函數之間進行傳遞。這個方法是方便,但是需要一個有效的請求上下文來依賴引入,或者嘗試重用使用一個和請求掛鉤的值的代碼。

小心開發web

   在構建web應用時,要一直謹記安全。

如果寫web應用,也許允許用戶註冊和在服務器上保存數據。用戶委託數據,即使自己是唯一的可能需要在應用中保存數據的用戶,仍要保證數據的安全。

很不幸的是,有很多方法可以損害web應用的安全性。Flask能夠避免現在web應用最常見的安裝問題:跨站腳本***(XSS)。如果將不安全的HTML標記爲安全,否則Flask和底層的Jinja2模版引擎會覆蓋。但是有很多引起安全問題的因素。

其中一些安全問題比人們想的更復雜。有時會低估一個漏洞被利用的可能性,直到***者找到利用應用的方法。不要任務自己的應用是不重要的,就不會吸引***者。根據***的種類,可能是自動機器人探測使用垃圾郵件、惡意軟件的鏈接等等來填充數據庫的方法。

Flask與其它框架並沒有什麼不同,在建立的時候必須謹慎。當簡歷需求是,要觀察使用。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章