Flask(1)- 簡介

小菠蘿測試筆記發表於2021-07-10

背景

  • 為啥要學,很久之前就學過點,沒寫文章
  • 最近因為要寫機器人工具,其實就是簡單的純服務端工具
  • 反正 flask 也挺簡單,一天快速過完
  • 概念會直接搬教程的,實操自己敲一遍再總結

 

參考教程

https://read.helloflask.com/c2-hello

http://www.imooc.com/wiki/flasklesson

 

Flask 簡介

  • 輕:Flask 是一個輕量級的 Web 框架,使用 Python 語言編寫
  • 易:較其他同型別框架更為靈活、輕便且容易上手
  • 快:小型團隊在短時間內就可以完成功能豐富的中小型網站或 Web 服務的實現

 

定製化

  • Flask 具有很強的定製性,使用者可以根據自己的需求來新增相應的功能
  • 在保持核心功能簡單的同時實現功能的豐富與擴充套件
  • 其強大的外掛庫可以讓使用者實現個性化的網站定製,開發出功能強大的網站

 

Flask 的特點

微框架

Flask 是一個 Python 實現的 Web 開發框架,但是這個“微”並不代表著 Flask 功能比較簡陋、有所欠缺

 

微框架中的 “微” 意味著

  • Flask 旨在保持核心簡單而易於擴充套件
  • Flask 不會替使用者做出太多決策,比如使用何種資料庫;
  • Flask 的選項(比如使用何種模板引擎) 通常有多個,使用者很容易替換

 

Flask 的擴充套件性

  • 預設情況下,Flask 不包含資料庫抽象層、模板引擎、身份認證或其它任何已有多種庫可以勝任的功能
  • 但是 Flask 支援用擴充套件來給應用新增這些功能,應用程式可以很方便的整合這些擴充套件
  • 眾多的擴充套件提供了資料庫整合、表單驗證、上傳處理、各種各樣的開放認證技術等功能

 

約定優於配置

  • 設計不好的框架通常需要多個配置檔案,每一個都有許多設定選項,程式設計師需要記憶大量的引數配置
  • 但是 Flask 遵循約定優於配置(Convention Over Configuration),也稱作按約定程式設計是一種軟體設計正規化
  • 目的在於減少軟體開發人員所需要做出的決定的數量,從而將開發變得簡單,而又不失去其中的靈活性,開發人員僅僅需要規定應用中不符合約定的部分
  • Flask 存在有眾多的配置選項,但是在初始狀況下,它們都有一個常用的預設值,並會遵循一些慣例
  • 例如:按照慣例,模板和靜態檔案分別儲存在應用 Python 原始碼樹下的子目錄 templates 和 static 裡
  • 雖然這個配置可以修改,但通常不必這麼做,尤其是在剛開始學習的時候

 

Flask 與 Django 的比較

兩個框架的區別

其實兩者最主要區別在於:Django 功能大而全,Flask 只包含基本的功能

  • Django 採用一站式解決的思路,Django 整合有模板、表單、路由、認證、基本的資料庫管理等內建功能,開發者不用在選擇應用的基礎設施上花費大量時間
  • Django 就像是一個裝潢好的房子(如下圖所示),它提供了各種傢俱,直接入住即可

圖片描述

Flask 相對於 Django 而言是輕量級的 Web 框架

  • 和 Django 不同,Flask 只提供了最核心的功能,輕巧、簡潔,通過定製第三方擴充套件來實現具體功能
  • 預設情況下,不包含資料庫抽象、使用者認證、表單驗證、傳送郵件等其它 Web 框架經常包含的功能
  • Flask 依賴用各種靈活的擴充套件(比如郵件 Flask Mail,使用者認證 Flask Login,資料庫 Flask SQLAlchemy)來給Web應用新增額外功能
  • Flask 就像是一個沒有裝潢的房子(如下圖所示),使用者需要自己選擇各種傢俱才可以入住

圖片描述

 

新手入門推薦

  • Flask 是一個輕量級的 Web 框架,只提供核心服務,較其他同型別框架更為輕便且容易上手,適用於小型團隊在短時間內就可以完成功能豐富的中小型網站
  • 與之相比,Django 是一個重量級的 Web 框架,內建許多常用的擴充套件,這些功能是由官方和社群共同維護的,其健壯性高,有利於保障專案質量。
  • 推薦新手學習 Flask 框架,可以先從 Flask 開始,後使用 Django 重構,因為如果直接上 Django,作為新手,面對 Django 內建的各種繁雜功能產生很多疑惑
  • 就如同搭積木,如果直接給你一個搭好的模型,再拆開後(逆向過程),讓你指出每塊積木的作用,你可能會有疑惑。但是讓你親自一步步去搭好後(正向過程),再去拆解模型,你對每塊積木的都會有不錯的瞭解
  • Flask 開發就像是這個正向過程,自己一步一步去整合想要的擴充套件,完善網站,每一步都親自動手做一遍,有助於理解 Web 開發的很多概念
  • Django 開發就像是逆向過程,Django 已經幫你整合了許多常用的擴充套件,使用者要做的去學習這些擴充套件的使用

相關文章