第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Flask 框架簡介

圖片描述

Python 中存在眾多的 Web 開發(fā)框架:Flask、Django、Tornado、Webpy、Web2py、Bottle、Pyramid、Zope2 等。近幾年較為流行的,大概也就是 Flask 和 Django 了。我們以這些 Web 開發(fā)框架作為關(guān)鍵字,在慕課網(wǎng)中搜索相關(guān)課程,查詢到的課程數(shù)量如下所示:

Web 開發(fā)框架 相應的課程數(shù)量
Django 17
Flask 15
Tornado 2
其余的框架 0

由此可見,Django 和 Flask 確實是 Python 領(lǐng)域中最主流的兩個 Web 開發(fā)框架,本節(jié)課我們就來介紹下 Flask 框架的特點,并簡單了解下 Flask 與 Django 框架的優(yōu)缺點對比。

1. Flask 簡介

Flask 是一個輕量級的 Web 框架,使用 Python 語言編寫,較其他同類型框架更為靈活、輕便且容易上手,小型團隊在短時間內(nèi)就可以完成功能豐富的中小型網(wǎng)站或 Web 服務的實現(xiàn)。

Flask 具有很強的定制性,用戶可以根據(jù)自己的需求來添加相應的功能,在保持核心功能簡單的同時實現(xiàn)功能的豐富與擴展,其強大的插件庫可以讓用戶實現(xiàn)個性化的網(wǎng)站定制,開發(fā)出功能強大的網(wǎng)站。

2. Flask 的特點

2.1 微框架

Flask 是一個 Python 實現(xiàn)的 Web 開發(fā)微框架,但是這個“”并不代表著 Flask 功能比較簡陋、有所欠缺。微框架中的 “微” 意味著:

  • Flask 旨在保持核心簡單而易于擴展
  • Flask 不會替用戶做出太多決策,比如使用何種數(shù)據(jù)庫;
  • Flask 的選項(比如使用何種模板引擎) 通常有多個,用戶很容易替換。

默認情況下,F(xiàn)lask 不包含數(shù)據(jù)庫抽象層、模板引擎、身份認證或其它任何已有多種庫可以勝任的功能,如下圖所示。然而,F(xiàn)lask 支持用擴展來給應用添加這些功能,應用程序可以很方便的集成這些擴展。眾多的擴展提供了數(shù)據(jù)庫集成、表單驗證、上傳處理、各種各樣的開放認證技術(shù)等功能。

圖片描述

2.2 約定優(yōu)于配置

設計不好的框架通常需要多個配置文件,每一個都有許多設置選項,程序員需要記憶大量的參數(shù)配置。

但是 Flask 遵循約定優(yōu)于配置(Convention Over Configuration),也稱作按約定編程是一種軟件設計范式。目的在于減少軟件開發(fā)人員所需要做出的決定的數(shù)量,從而將開發(fā)變得簡單,而又不失去其中的靈活性,開發(fā)人員僅僅需要規(guī)定應用中不符合約定的部分。

Flask 存在有眾多的配置選項,但是在初始狀況下,它們都有一個常用的默認值,并會遵循一些慣例。 例如:按照慣例,模板和靜態(tài)文件分別存儲在應用 Python 源代碼樹下的子目錄 templates 和 static 里。雖然這個配置可以修改,但通常不必這么做,尤其是在剛開始學習的時候。

3. Django 簡介

Django 是一個開放源代碼的 Web 應用框架,由 Python 寫成,它最初是被開發(fā)來用于管理一些以新聞內(nèi)容為主的網(wǎng)站,即是CMS(內(nèi)容管理系統(tǒng))軟件。

Django 是一個遵循 MVC 設計模式的框架。MVC 是 Model、View、Controller 三個單詞的簡寫,分別代表模型、視圖、控制器。Django 也是一個 遵循 MVC 設計模式的框架。MTV 是 Model、Template、View 三個單詞的簡寫,分別代表模型、模版、視圖 。

4. Django 的特點

Django 是一個 Python 實現(xiàn)的 Web 開發(fā)重框架。重框架中的 “重” 意味著,Django 除了實現(xiàn) Web 框架的基本功能,內(nèi)置了大量的模塊,Django 的架構(gòu)如下所示:

圖片描述

與 Flask 的架構(gòu)相比,兩者的區(qū)別很明顯:

  • Flask 僅包含最核心的框架功能,沒有集成數(shù)據(jù)庫訪問、模板引擎等功能;
  • Django 不僅包含最核心的框架功能,還包含了數(shù)據(jù)庫訪問、模板引擎等功能。

Django 集成的功能模塊包括:

對象關(guān)系映射 (ORM, Ojbect Relation Model)

以 Python 類形式定義數(shù)據(jù)模型,ORM 將模型與關(guān)系數(shù)據(jù)庫關(guān)聯(lián),得到一個非常容易使用的數(shù)據(jù)庫 API,同時也可以在 Django 中使用原始的 SQL 語句訪問數(shù)據(jù)庫。

表單處理

可以方便的生成各種表單模型,實現(xiàn)表單的有效性檢驗,可以方便的從定義的模型實例生成相應的表單。

模板引擎

Django 模板用于編寫 html 代碼,更快更方便的完成頁面開發(fā),再通過在視圖中渲染模板,將生成最終的 html 字符串返回給客戶端瀏覽器。

后臺管理系統(tǒng)

Django 自帶一個 ADMIN site,類似于內(nèi)容管理系統(tǒng),不需要再花大量的工作來創(chuàng)建用戶和內(nèi)容管理系統(tǒng)。

5. Flask 與 Django 的比較

5.1 兩個框架的區(qū)別

上面我們簡單介紹了 Flask 和 Django 這兩個 Web 開發(fā)框架,下面,我給大家總結(jié)一下這兩個框架的區(qū)別到底在哪里:

其實兩者最主要區(qū)別在于:Django 功能大而全,F(xiàn)lask 只包含基本的功能。

Django 采用一站式解決的思路,Django 集成有模板、表單、路由、認證、基本的數(shù)據(jù)庫管理等內(nèi)建功能,開發(fā)者不用在選擇應用的基礎(chǔ)設施上花費大量時間。

Django 就像是一個裝潢好的房子(如下圖所示),它提供了各種家具,直接入住即可。

圖片描述

Flask 相對于 Django 而言是輕量級的 Web 框架。和 Django 不同,F(xiàn)lask 只提供了最核心的功能,輕巧、簡潔,通過定制第三方擴展來實現(xiàn)具體功能。

默認情況下,不包含數(shù)據(jù)庫抽象、用戶認證、表單驗證、發(fā)送郵件等其它 Web 框架經(jīng)常包含的功能。Flask 依賴用各種靈活的擴展(比如郵件 Flask Mail,用戶認證 Flask Login,數(shù)據(jù)庫 Flask SQLAlchemy)來給Web應用添加額外功能。

Flask 就像是一個沒有裝潢的房子(如下圖所示),用戶需要自己選擇各種家具才可以入住。

圖片描述

5.2 新手入門推薦

Flask 是一個輕量級的 Web 框架,只提供核心服務,較其他同類型框架更為輕便且容易上手,適用于小型團隊在短時間內(nèi)就可以完成功能豐富的中小型網(wǎng)站。與之相比,Django 是一個重量級的 Web 框架,內(nèi)置許多常用的擴展,這些功能是由官方和社區(qū)共同維護的,其健壯性高,有利于保障項目質(zhì)量。

推薦新手學習 Flask 框架,可以先從 Flask 開始,后使用 Django 重構(gòu)。因為如果直接上 Django,作為新手,面對 Django 內(nèi)置的各種繁雜功能產(chǎn)生很多疑惑。

就如同搭積木,如果直接給你一個搭好的模型,再拆開后(逆向過程),讓你指出每塊積木的作用,你可能會有疑惑。但是讓你親自一步步去搭好后(正向過程),再去拆解模型,你對每塊積木的都會有不錯的了解。

Flask 開發(fā)就像是這個正向過程,自己一步一步去集成想要的擴展,完善網(wǎng)站,每一步都親自動手做一遍,有助于理解 Web 開發(fā)的很多概念。Django 開發(fā)就像是逆向過程,Django 已經(jīng)幫你集成了許多常用的擴展,用戶要做的去學習這些擴展的使用。

6. 本課程所需的前置基礎(chǔ)知識

Flask 是一個用于 Web 開發(fā)的框架,學習本課程之前,需要掌握一定的 Web 開發(fā)基礎(chǔ),具體包括如下知識點:

  1. Python 的基本語法;
  2. Html 的常用標簽;
  3. Css 的基本知識;
  4. Javascript 的基本語法。

本課程面向 Python 初學者,Python 初學者在學習完 Python 基本語法后,希望用 Python 完成一個具體的項目,用于開發(fā)一個網(wǎng)站。

7. 小結(jié)

本節(jié)介紹了 Python Web 開發(fā)的兩個框架:Flask 和 Django,并對其進行了對比,使用思維導圖總結(jié)如下:

圖片描述