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

Flask 框架簡(jiǎn)介

圖片描述

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

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

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

1. Flask 簡(jiǎn)介

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

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

2. Flask 的特點(diǎn)

2.1 微框架

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

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

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

圖片描述

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

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

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

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

3. Django 簡(jiǎn)介

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

Django 是一個(gè)遵循 MVC 設(shè)計(jì)模式的框架。MVC 是 Model、View、Controller 三個(gè)單詞的簡(jiǎn)寫,分別代表模型、視圖、控制器。Django 也是一個(gè) 遵循 MVC 設(shè)計(jì)模式的框架。MTV 是 Model、Template、View 三個(gè)單詞的簡(jiǎn)寫,分別代表模型、模版、視圖 。

4. Django 的特點(diǎn)

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

圖片描述

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

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

Django 集成的功能模塊包括:

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

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

表單處理

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

模板引擎

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

后臺(tái)管理系統(tǒng)

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

5. Flask 與 Django 的比較

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

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

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

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

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

圖片描述

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

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

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

圖片描述

5.2 新手入門推薦

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

推薦新手學(xué)習(xí) Flask 框架,可以先從 Flask 開始,后使用 Django 重構(gòu)。因?yàn)槿绻苯由?Django,作為新手,面對(duì) Django 內(nèi)置的各種繁雜功能產(chǎn)生很多疑惑。

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

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

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

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

  1. Python 的基本語(yǔ)法;
  2. Html 的常用標(biāo)簽;
  3. Css 的基本知識(shí);
  4. Javascript 的基本語(yǔ)法。

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

7. 小結(jié)

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

圖片描述