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

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)

新聞 后端
Django 應(yīng)該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動(dòng)化的管理后臺(tái)。

一:Django

Django 應(yīng)該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動(dòng)化的管理后臺(tái):只需要使用起ORM,做簡(jiǎn)單的對(duì)象定義,它就能自動(dòng)生成數(shù)據(jù)庫(kù)結(jié)構(gòu)、以及全功能的管理后臺(tái)。

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn):

開源框架,有完美的文檔支持

解決方案眾多,內(nèi)部功能支持較多

優(yōu)雅的URL,完整的路由系統(tǒng)

自助式的后臺(tái)管理

  • 缺點(diǎn):

系統(tǒng)緊耦合,想用喜歡的第三方庫(kù)來代替是非常難的,即使打了一些補(bǔ)丁用上了也會(huì)覺得非常別扭。

Django自帶的ORM遠(yuǎn)不如SQLAlchemy強(qiáng)大。

Template功能比較弱,不能插入Python代碼,要寫復(fù)雜一點(diǎn)的邏輯需要另外用Python實(shí)現(xiàn) Tag或Filter。

二:Flask

Flask是一個(gè)用Python編寫的輕量級(jí)Web應(yīng)用框架?;赪erkzeug WSGI工具箱和Jinja2模板引擎。Flask也被稱為“microframework”,因?yàn)樗褂煤?jiǎn)單的核心,用extension增加其他功能。Flask沒有默認(rèn)使用的數(shù) 據(jù)庫(kù)、窗體驗(yàn)證工具。

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn):

Flask比Django更靈活,用Flask來構(gòu)建應(yīng)用之前,選擇組件的時(shí)候會(huì)給開發(fā)者帶來更多的靈活性 ,可能有的應(yīng)用場(chǎng)景不適合使用一個(gè)標(biāo)準(zhǔn)的ORM(Object-Relational Mapping對(duì)象關(guān)聯(lián)映射),或者需要與不同的工作流和模板系統(tǒng)交互。

  • 缺點(diǎn):

Flask只是一個(gè)內(nèi)核,默認(rèn)依賴于兩個(gè)外部庫(kù): Jinja2 模板引擎和 Werkzeug WSGI 工具集,其他很多功能都是以擴(kuò)展的形式進(jìn)行嵌入使用。

三:Scrapy

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)

Scrapy是Python開發(fā)的一個(gè)快速、高層次的屏幕抓取和web抓取框架,用于抓取web站點(diǎn)并從頁(yè)面中提取結(jié)構(gòu)化的數(shù)據(jù)。Scrapy用途廣泛,可以用于數(shù)據(jù)挖掘、監(jiān)測(cè)和自動(dòng)化測(cè)試。

  • 優(yōu)點(diǎn):

Scrapy是一個(gè)功能非常強(qiáng)大的爬蟲框架,它不僅能便捷地構(gòu)建request,還有強(qiáng)大的selector能夠方便地解析response,然而它最受歡迎的還是它的性能,既抓取和解析的速度,它的downloader是多線程的,request是異步調(diào)度和處理的。這兩點(diǎn)使它的爬取速度非常之快。 另外還有內(nèi)置的logging,exception,shell等模塊,為爬取工作帶來了很多便利。

  • 缺點(diǎn):

scrapy是封裝起來的框架,他包含了下載器,解析器,日志及異常處理,基于多線程, twisted的方式處理,對(duì)于固定單個(gè)網(wǎng)站的爬取開發(fā),有優(yōu)勢(shì),但是對(duì)于多網(wǎng)站爬取100個(gè)網(wǎng)站,并發(fā)及分布式處理方面,不夠靈活,不便調(diào)整與括展。

四:Tornado

Tornado是一種 Web 服務(wù)器軟件的開源版本。Tornado 和現(xiàn)在的主流 Web 服務(wù)器框架(包括大多數(shù) Python 的框架)有著明顯的區(qū)別:它是非阻塞式服務(wù)器,而且速度相當(dāng)快。

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn):

Tornado擅長(zhǎng)為需要嚴(yán)密控制異步網(wǎng)絡(luò)細(xì)節(jié)的應(yīng)用程序提供基礎(chǔ)架構(gòu)。例如,Tornado不僅提供內(nèi)置的異步HTTP服務(wù)器,還提供異步HTTP客戶端。因此,Tornado非常適合構(gòu)建應(yīng)用程序,例如Web scraper或bot,它們并行查詢其他站點(diǎn)并對(duì)返回的數(shù)據(jù)進(jìn)行操作。

  • 缺點(diǎn):

模板和數(shù)據(jù)庫(kù)部分有很多第三方的模塊可供選擇,這樣不利于封裝為一個(gè)功能模塊。

五:Web2py

web2py是一個(gè)為Python語言提供的全功能Web應(yīng)用框架,旨在敏捷快速的開發(fā)Web應(yīng)用,具有快速、安全以及可移植的數(shù)據(jù)庫(kù)驅(qū)動(dòng)的應(yīng)用,兼容 Google App Engine。

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn):

Web2py最大的吸引力在于其內(nèi)置的開發(fā)環(huán)境。當(dāng)設(shè)置Web2py實(shí)例時(shí),將獲得一個(gè)Web界面,實(shí)際上是一個(gè)在線Python應(yīng)用程序編輯器,可以在其中配置應(yīng)用程序的組件。這通常意味著創(chuàng)建模型,視圖和控制器,每個(gè)都通過Python模塊或HTML模板進(jìn)行描述。

  • 缺點(diǎn):

Web2py的一個(gè)重要限制是它僅與Python 2.x兼容。首先這意味著Web2py無法使用Python 3的異步語法。如果你依賴于Python3獨(dú)有的外部庫(kù),那么你就不走運(yùn)了。但是,正在開展使Web2py Python3兼容的工作,并且在撰寫本文時(shí)它已接近完成。

六:Weppy

Weppy感覺就像Flask的簡(jiǎn)約風(fēng)格和Django的完整性之間的中間標(biāo)記。雖然開發(fā)Weppy應(yīng)用程序具有Flash的直接性,但Weppy具有Django中的許多功能,如數(shù)據(jù)層和身份驗(yàn)證。因此,Weppy適用于從極其簡(jiǎn)單到適度復(fù)雜的應(yīng)用程序。

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn):

Weppy的文檔與框架本身具有相同的風(fēng)格。它干凈,可讀,并且被人類消費(fèi)。除了通常的“hello world”應(yīng)用程序示例之外,它還包含一個(gè)很好的演練教程,可以讓你創(chuàng)建一個(gè)微博系統(tǒng)作為初學(xué)者項(xiàng)目。

  • 缺點(diǎn):

雖然Weppy有一個(gè)擴(kuò)展機(jī)制,但官方批準(zhǔn)的附加組件列表很小,遠(yuǎn)小于Flask的擴(kuò)展目錄。

七:Bottle

Bottle可以被認(rèn)為是一種迷你燒瓶,因?yàn)樗绕渌?ldquo;微框架”更加緊湊和簡(jiǎn)潔。由于其占地面積最小,Bottle非常適合包含在其他項(xiàng)目中或快速交付REST API等小型項(xiàng)目。

淺析七款“Python開源框架”的優(yōu)缺點(diǎn)
  • 優(yōu)點(diǎn):

Bottle不需要像其他框架那樣多的文檔,但文檔絕不是吝嗇。所有關(guān)鍵的東西都適合單個(gè)(盡管很長(zhǎng))的網(wǎng)頁(yè)。除此之外,還可以找到每個(gè)API的完整文檔,如何在各種基礎(chǔ)架構(gòu)上進(jìn)行部署的示例,內(nèi)置模板語言的解釋以及一系列常見配方。

  • 缺點(diǎn):

Bottle極簡(jiǎn)主義的一個(gè)后果是有些功能根本就不存在。不支持表單驗(yàn)證,包括CSRF保護(hù)等功能。如果要構(gòu)建支持高度用戶交互的Web應(yīng)用程序,則需要自己添加它們。

 

責(zé)任編輯:張燕妮 來源: 今日頭條
相關(guān)推薦

2009-12-01 18:36:51

2009-09-09 17:14:24

XML序列化

2016-12-06 09:45:30

Web框架優(yōu)缺點(diǎn)

2022-09-22 12:04:22

.NET開發(fā)框架

2015-07-17 10:02:15

Linux桌面環(huán)境

2019-10-31 11:16:57

Web框架Angular

2022-07-11 06:43:21

測(cè)試框架Java

2023-08-29 08:47:13

設(shè)計(jì)模式Springboot

2023-12-14 08:13:56

2023-01-31 08:00:00

開源開發(fā)軟件

2016-05-25 10:22:22

開源PythonGUI

2021-10-09 09:52:17

云存儲(chǔ)公共云遷移

2025-02-27 09:00:00

RAG檢索增強(qiáng)生成RAG框架

2009-06-05 09:45:44

Struts優(yōu)缺點(diǎn)開源

2011-03-02 09:36:30

開源BBS論壇軟件

2009-06-19 18:36:15

JPAHibernate

2018-05-17 11:05:56

2020-01-09 10:44:47

Hadoop 3缺點(diǎn)優(yōu)點(diǎn)

2021-04-12 14:40:50

人臉識(shí)別面部識(shí)別人工智能

2022-07-18 13:36:13

零信任網(wǎng)絡(luò)安全
點(diǎn)贊
收藏

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