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

全部開發(fā)者教程

Django 入門教程

課程導(dǎo)學(xué)
Django 慕課教程使用指南
Django開發(fā)實(shí)戰(zhàn)
35 開發(fā)實(shí)戰(zhàn)

什么是 Web 框架?

上一節(jié)課《Django 框架簡介》我們簡單地認(rèn)識了下 Django 框架,在正式開始學(xué)習(xí)它之前,我還要跟你說下 Web 框架到底是個什么東西?為什么市面上會有各種各樣形形色色的 Web 開發(fā)框架?以及使用 Web 框架進(jìn)行開發(fā)的優(yōu)勢在哪里?這些問題在這節(jié)課里面你都可以找到答案。

1. Web 框架

在計算機(jī)領(lǐng)域,框架指的是由部分組織、機(jī)構(gòu)或者個人開發(fā)出的一套程序模板。我們借助這套程序模板可以快速進(jìn)行應(yīng)用開發(fā)。往往一個優(yōu)秀的框架是能幫我們簡化各種常用操作,比如各種類型數(shù)據(jù)庫 (SQLite、MySQL 或者 PostgreSQL)的增刪改查、簡化各種熱門互聯(lián)網(wǎng)組件(如消息中間件等)的接入以及提供各種復(fù)雜功能的再包裝。

特別對于 Web 框架,會對到發(fā)生過來的 HTTP 請求做一系列的過濾處理,最后才到達(dá)我們的視圖函數(shù)進(jìn)行處理。計算機(jī)的每一個領(lǐng)域都有大量的早期互聯(lián)網(wǎng)工作者為我們做了不少工作。為了減少重復(fù)造輪子,早期的互聯(lián)網(wǎng)工作者為我們開發(fā)了許多優(yōu)秀的代碼庫,而后逐漸演變成開發(fā)框架,以供普通開發(fā)者使用。正是由于開發(fā)框架的出現(xiàn),大大降低了程序員的開發(fā)門檻,也導(dǎo)致越來越多的人員進(jìn)入該行業(yè)。

Web 框架是專門針對 Web 應(yīng)用開發(fā)的一套開發(fā)工具,幾乎都是開源和任意使用,由社區(qū)維護(hù) 。由于 Web 的后端開發(fā)語言有很多種,比如 Java、Python 以及 Go 等,它們都對應(yīng)著若干個非常流行的 Web 框架。Java 中最火的 Web 開發(fā)框架莫過于 Spring 以及 SpringMVC 系列框架,Python 中有 DjangoFlaskTornado 等。而在這些框架的基礎(chǔ)上,我們幾乎只需要十幾行就能構(gòu)建出一個簡單的 Web 服務(wù)。

2. 使用 Web 框架的好處

使用 Web 框架進(jìn)行開發(fā)的好處如下:

  • 應(yīng)用業(yè)界最流行的 Python Web 框架,如 Django、Flask 等,可以幫我們快速完成應(yīng)用開發(fā),節(jié)省開發(fā)時間和人力投入,這種做法往往是中小型企業(yè)開發(fā)的不二之選。大型企業(yè)也許會開發(fā)出自己的服務(wù)框架,比如阿里的微服務(wù)框架 Dubbo。但對于大多數(shù)企業(yè)而言,由于財力和人力限制,基于框架開發(fā)是最高效的解決方案;

  • 流行的 Web 框架往往具備一定的優(yōu)異性能和良好的代碼規(guī)范,我們遵守一定的開發(fā)原則就能構(gòu)建出良好風(fēng)格的 API 接口,同時開發(fā)應(yīng)用也會具備框架的優(yōu)異性能。例如 Tornado 框架是專注高性能的 Web 框架;

  • 避免重復(fù)造輪子,由框架完成各種常用操作代碼。開發(fā)人員集中精力完成業(yè)務(wù)邏輯開發(fā),可以顯著降低 Web 開發(fā)難度

  • 在熟練使用 Web 框架之后,我們可以認(rèn)真學(xué)習(xí) Web 框架源碼,這些代碼是來自全世界優(yōu)秀的程序員奉獻(xiàn)智慧的結(jié)晶。從中我們可以學(xué)習(xí)到如何處理 Web 請求,如何使用開發(fā)語言(如 Java、Python 等)的各種設(shè)計模式、高級封裝等。只有深入學(xué)習(xí)了這些知識,我們才有可能成為一名合格的應(yīng)用開發(fā)者。

在信息安全領(lǐng)域,只會使用工具進(jìn)行網(wǎng)絡(luò)攻擊的人,被嘲笑為腳本小子。只會使用框架,調(diào)各種 API 接口的開發(fā)者,往往被人戲稱為調(diào)包俠。因此,掌握 Web 框架的使用是第一步,除此之外,我們在學(xué)完框架的基本使用之后,還需要真正深入框架源碼進(jìn)行學(xué)習(xí),除了能快速定位開發(fā)問題之外,也是快速提升個人能力的一個有效途徑。

3. 各種語言的 Web 框架介紹

目前,主流的 Web 框架可以按照語言類型進(jìn)行分類,比如基于 Java 開發(fā)的 Web 框架、基于 Python 開發(fā)的 Web 框架和基于 Go 開發(fā)的 Web 框架等等。每種語言領(lǐng)域內(nèi)的 Web 框架也是各有特色,有大而全,有小而精,還有專注異步高性能等等。

熱門的 Python Web 框架有:

  • Django:基于 MTV 的框架模式,有強(qiáng)大的數(shù)據(jù)庫功能、強(qiáng)大的后臺管理功能、模板系統(tǒng)、緩存系統(tǒng)等;

  • Flask:小而精的 Web 框架典范,可擴(kuò)展性強(qiáng);

  • Tornado: 輕量級的 Web 框架,其特點(diǎn)是非阻塞和高性能,是實(shí)時 Web 服務(wù)的一個 理想框架。

主流的 Java Web 框架有:

  • Spring/Spring Boot/Spring MVC 等:幾乎是大部分 Java web 開發(fā)者的首選和必選,占據(jù)了大部分市場?;?Spring 及其衍生框架,我們能迅速開發(fā)一個 Java Web 服務(wù),幾乎不需要任何 Web 開發(fā)基礎(chǔ);

  • Dubbo:阿里巴巴的開源的高性能 RPC 框架、特點(diǎn)是分布式、高性能以及高度可擴(kuò)展;

  • Struts2:老一代的 Java Web 框架,特點(diǎn)是高度成熟。不過目前趨勢來看,已經(jīng)很少人使用 Struts2 來開發(fā)新的 Web 服務(wù)。

Go 作為近幾年快速崛起的后端開發(fā)語言,也受到了廣大后端開發(fā)者的追捧,Go Web 框架也隨之而來,其中的典型代表有:

  • Beego 框架:它類似于 Python Web 框架 Django,走大而全的風(fēng)格,具備各種 Web 應(yīng)用程序的通用功能;
  • Gin 框架:Gin 是 Go 的一個微框架,封裝優(yōu)雅,接口友好。具有快速靈活,容錯方便、性能優(yōu)異等特點(diǎn);
  • Echo 框架:Go 的微型 Web 框架。其具備快速 HTTP 路由器、支持?jǐn)U展中間件,同時還支持靜態(tài)文件服務(wù)。

4. 小結(jié)

本小結(jié)介紹了 Web 框架相關(guān)知識,梳理了使用 Web 框架開發(fā)的諸多好處,最后介紹了三種后端開發(fā)語言的主流 Web 框架。任何一種 Web 框架其核心思想和封裝功能都有很多相似。完全掌握一個 Web 框架的使用并熟讀其源碼,掌握框架核心處理流程,對于快速上手使用其他 Web 框架以及提升自身編碼水平都有極大的促進(jìn)作用。