自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python Web框架介紹

開發(fā) 后端
今天,有非常多的Python框架,用來幫助你更輕松的創(chuàng)建web應(yīng)用。這些框架把相應(yīng)的模塊組織起來,使得構(gòu)建應(yīng)用的時候可以更快捷,也不用去關(guān)注一些細(xì)節(jié)(例如socket和協(xié)議),所以需要的都在框架里了。接下來我們會介紹不同的選項。

Python Web框架介紹

今天,有非常多的Python框架,用來幫助你更輕松的創(chuàng)建web應(yīng)用。這些框架把相應(yīng)的模塊組織起來,使得構(gòu)建應(yīng)用的時候可以更快捷,也不用去關(guān)注一些細(xì)節(jié)(例如socket和協(xié)議),所以需要的都在框架里了。接下來我們會介紹不同的選項。

Python發(fā)源于八十年代后期。開發(fā)者是Centrum Wiskunde & Informatica的Guido van Rossum,這是位于荷蘭阿姆斯特丹科學(xué)園區(qū)的一個數(shù)學(xué)和計算機(jī)科學(xué)研究中心。之后Van Rossum一直是Python開發(fā)很有影響的人物。事實上,社區(qū)成員給了他一個榮譽(yù)稱號:終生仁慈獨(dú)裁者(BDFL)。

經(jīng)過初期的不起眼,Python已經(jīng)成為互聯(lián)網(wǎng)最流行的服務(wù)端編程語言之一。根據(jù)W3Techs的統(tǒng)計,它被用于很多的大流量的站點(diǎn),超過了ColdFusion, PHP, 和ASP.NET。其中超過98%的站點(diǎn)運(yùn)行的是Python 2.0,只有1%多一點(diǎn)的站點(diǎn)運(yùn)行3.0。

框架讓開發(fā)更輕松

今天,有著大量的Python框架,它們可以讓web應(yīng)用的開發(fā)更輕松。這些框架把不同的模塊集成在一起,讓你更快的構(gòu)架程序,而不用關(guān)注一些細(xì)節(jié)(例如socket和協(xié)議),框架提供了需要的所有功能。

作為分成兩部分的系列文章的第一部分,我們會介紹一些最流行的Python框架。雖然大部分現(xiàn)代的web框架都運(yùn)行在服務(wù)端,也有一些框架開始嘗試與客戶端代碼結(jié)合,可以在客戶端運(yùn)行(例如Skulpt和Trinket)。Python框架通常分為全??蚣芎头侨珬?蚣堋H珬?蚣茉O(shè)計從用戶體驗到數(shù)據(jù)庫的所有技術(shù),非全??蚣軇t并不包含整個開發(fā)的全部技術(shù)。

此外還有一種微框架,也屬于非全??蚣?,但是更輕量級。有的情況下,微框架是比較適合的,有時又適合使用全??蚣?。在文章的第二部分我們會對全棧框架和微框架做一個比較。

Django

Django恐怕是最有代表性的Python框架了。它是一個遵循MMVC架構(gòu)模式的開源框架。它的名字來自Django Reinhardt,一個法國作曲家和吉他演奏家,很多人認(rèn)為他是歷史上最偉大的吉他演奏家。位于堪薩斯洲的Lawrence城的Lawrence Journal-World報社有兩位程序員,Adrian Holovaty和Simon Willison,他們在2003的時候開發(fā)出了Django,用于給報紙開發(fā)web程序。

Django內(nèi)置了模板引擎,同時也通過OOTB來支持流行的Jinja2引擎。它還支持基于正則的URL分發(fā),可以通過簡單的URL來完成復(fù)雜的映射。

Django的優(yōu)勢之一是只需要單獨(dú)的安裝包來安裝。其他的一些類似的框架需要下載很多組件才能開始工作。而且,Django還有完善的保持更新的文檔,對于開源項目來說這通常是短板。它是一個健壯的框架,很好的集成了很多來自社區(qū)的插件和擴(kuò)展。項目背后的社區(qū)看上去也組織的很好,這從它非常完善的文檔和教程就可以看出來。

TurboGears

TurboGears是在幾個著名的Python項目上構(gòu)建起來的一個框架,如SQLAlchemy,WebOb,Repoze,Genshi。在某種意義上,TurboGears是將多個已經(jīng)建立的開放平臺粘合在一起。和Django一樣,它采用MVC架構(gòu)。它最近還包含一個“最小模式”,使其可以作為一個微框架。

TurboGears是由Kevin Dangoor在2005年開發(fā)的。他在當(dāng)年9月將其作為一個開源項目發(fā)布。2013年,項目開發(fā)人員遷移到支持Python 3,拋棄了他們曾經(jīng)寫的Pylons代碼。TurboGears的優(yōu)點(diǎn)包括:

  • 支持聚合
  • 強(qiáng)大的對象關(guān)系映射器
  • 事務(wù)系統(tǒng)支持多數(shù)據(jù)庫間事務(wù)
  • 多數(shù)據(jù)庫支持
  • 以可重用的代碼片段為模板
  • 具有很多的靈活性,可以對接非標(biāo)準(zhǔn)組件
  • 支持分片
  • 模板系統(tǒng)使設(shè)計師的設(shè)計更輕松

TurboGears的一些缺點(diǎn)包括管理功能較為基礎(chǔ),較少的第三方應(yīng)用程序以及只有初級的文檔。TurboGears的一個重大挑戰(zhàn)是它的壓倒性。因為它混搭的其他組件都提供無限的靈活性, 當(dāng)試圖決定何種路徑來完成一個任務(wù)時它是過于復(fù)雜的。

web2py

web2py是一個開源框架,允許開發(fā)者快速創(chuàng)建動態(tài)交互式的網(wǎng)站。它的設(shè)計目標(biāo)是消除拖慢開發(fā)的大量重復(fù)編程任務(wù),比如創(chuàng)建基本的表格。它在最初是作為工具開發(fā)的。隨后被Django和Ruby on Rails模仿,Ruby on Rails是個Ruby的框架。同TurboGears一樣,它使用MVC架構(gòu)。

最開始的源代碼是由Massimo DiPierro在2007年開放的。在那時,它被稱為Enterprise Web Framework(EWF)。由于命名沖突,它改過好幾次名字,最后在1.16版確定為當(dāng)前的web2py。使用web2py開發(fā)的應(yīng)用包括Movuca內(nèi)容管理系統(tǒng),音樂網(wǎng)站NoobMusic,名為LinkFindr的網(wǎng)絡(luò)診斷工具,以及Instant Press博客平臺。在2011年,web2py被評為最好的開源開發(fā)軟件,榮獲Bossie Award。第二年,又?jǐn)孬@InfoWorld的年度技術(shù)獎。

與Django一樣,web2py也具有廣泛的文檔。新開發(fā)者和高級開發(fā)者可以免費(fèi)下載它的完整開發(fā)手冊。

web2py的一些優(yōu)點(diǎn)包括:

  • 容易使用——作為一個魯棒的全棧式框架,它無需其他依賴就可以工作,容易學(xué)習(xí)和部署,安裝也無需任何配置文件,一旦下載完成,安裝完畢,就可以用了。開發(fā)者會獲得一個數(shù)據(jù)庫,一個基于web的IDE,web服務(wù)器以及一個有多個核心對象組成的強(qiáng)大API。
  • 安全性出色——Web2py的模板語言減少了黑客使用跨站腳本的危險,抽象層在創(chuàng)建表單時有表單域有效性檢查,避免SQL注入,也阻止了跨站請求偽造攻擊(csrf攻擊)。會話被存儲在服務(wù)器上,阻止壞的執(zhí)行者把瀏覽器cookie弄亂,并且每個密碼都是哈希后存儲的。

web2py的一些缺點(diǎn)包括:

  • 在常規(guī)基礎(chǔ)上使用管理的接口不太容易
  • 管理的接口沒有權(quán)限
  • 沒有內(nèi)建的單元測試支持
  • 開發(fā)速度迅速,所有的函數(shù)都有缺省行為,表單時自動生成的,高層次的小部件和應(yīng)用網(wǎng)格都是內(nèi)建的。

Flask

Flask是一個基于Jinja2和Werkzeug的python微框架,和其他框架類似,它是BSD授權(quán)的,一個有少量限制的免費(fèi)軟件許可。使用Flask的網(wǎng)站包括領(lǐng)英LinkedIN和Pinterest。Flask有以下特點(diǎn):

  • 內(nèi)建的單元測試支持
  • 模板使用Jinjia2
  • 大量文檔
  • 客戶端會話使用安全cookies
  • 開發(fā)服務(wù)器和調(diào)試器
  • Restful請求
  • 與WSGI 1.0兼容
  • 基于unicode
  • 大量的擴(kuò)展Flask是一個年輕的框架,2010年誕生,F(xiàn)lask的目標(biāo)是不給程序員強(qiáng)加限制,允許你使用自己的數(shù)據(jù)庫對象關(guān)系映射,模板引擎,會話中間件以及你的項目所需的其他組件,在我看來這就是這個微框架的用意。我想說像Flask這樣的框架更適合有經(jīng)驗的開發(fā)者,并不是小規(guī)模應(yīng)用程序所必須的,當(dāng)然,如果你只想做一個簡單的REST API,那么Flask當(dāng)然再好不過了。

Bottle

瓶(Bottle)和flask一樣,Bottle是一個服務(wù)器網(wǎng)關(guān)接口(WSGI)網(wǎng)絡(luò)框架。作為一個文件,它不依賴于Python標(biāo)準(zhǔn)庫外的任何庫。Marcel Hellkamp于2009年寫它的時候,它僅由包含模板、路由和一個WSGI抽象層的最小工具開始。對于程序員尋找靈活性和基本功能、構(gòu)建簡單的應(yīng)用程序和網(wǎng)站、創(chuàng)建一個Web API來說,這小并且強(qiáng)大的框架是極好的。

它的優(yōu)點(diǎn)包括:

  • 內(nèi)建的快速模板引擎和對Jinja2,Mako和Cheetah的支持
  • 可以訪問上傳,cookies,表單數(shù)據(jù),標(biāo)題,和其他元數(shù)據(jù)的大量工具
  • 支持fapws3,Google App Engine,CherryPyPaste的內(nèi)建HTTP開發(fā)服務(wù)器
  • 支持動態(tài)URLs

Bottle的另一個優(yōu)點(diǎn)是,它的小巧精干便于嵌入在一個較大應(yīng)用程序中而不必?fù)?dān)心系統(tǒng)依賴關(guān)系。如果你想用一個簡單的,干凈的和快速的框架并且它沒有過多冗余,來創(chuàng)建小的應(yīng)用程序,Bottle是適合你的。

多框架

雖然很難相信,但這些只是少數(shù)幾十個開發(fā)人員可以使用Python框架,。Python.org報道,Django,TurboGears和web2py是最受歡迎的完整選項。為了在框架優(yōu)化方面提供一個全面的觀察,這里我們添加了兩個高級形態(tài)的微型框架。有著熱情的追隨者其他框架包括 Pyramid, web.py, Bobo, Albatross, 和 CherryPy。

找到正確的適合選擇

正確框架的選擇取決于項目的規(guī)模,它的通信需求,它是否是一個獨(dú)立的應(yīng)用程序,定制需求的級別,開銷,和許多其他因素。同樣重要的是,它取決于哪個框架適合你個人的工作方式。回顧這些項目并下載他們最新的版本。在計劃一個主要旅行之前,試開一下確保你在一個合適的車輛中。

責(zé)任編輯:龐桂玉 來源: Python開發(fā)者
相關(guān)推薦

2012-06-12 13:33:38

HTML5

2012-09-18 11:02:10

ASP.NETC#Web Forms

2010-03-25 17:39:37

Python web

2021-05-08 13:58:10

Python 開發(fā)編程語言

2009-12-16 13:48:06

Ruby Web開發(fā)框

2010-03-04 13:53:17

Python實現(xiàn)WEB

2010-02-23 10:50:11

Python 測試框架

2022-04-07 15:41:36

PythonWeb 開發(fā)框

2022-08-10 12:21:07

PythonWebBottle

2021-07-28 06:51:08

FlaskPythonWeb

2011-02-17 11:18:29

PythonWebRuby

2019-02-11 09:35:04

Python應(yīng)用程序Tornado

2015-07-13 10:41:30

Web開發(fā) Python 框架

2017-09-11 10:55:22

PythonWeb框架

2015-08-25 09:53:22

Web開發(fā)Python框架

2018-06-14 14:07:57

Pythonweb框架

2018-12-03 08:25:24

2017-05-23 14:20:17

WebPython框架

2009-06-19 14:49:43

Spring框架

2023-06-13 13:38:00

FlaskPython
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號