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

全部開發(fā)者教程

Django 入門教程

Django開發(fā)實戰(zhàn)
35 開發(fā)實戰(zhàn)

什么是 Web 框架?

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

1. Web 框架

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

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

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

2. 使用 Web 框架的好處

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

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

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

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

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

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

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

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

熱門的 Python Web 框架有:

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

  • Flask:小而精的 Web 框架典范,可擴展性強;

  • Tornado: 輕量級的 Web 框架,其特點是非阻塞和高性能,是實時 Web 服務的一個 理想框架。

主流的 Java Web 框架有:

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

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

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

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

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

4. 小結

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