狠狠操夜夜甜|人妻在线中文字幕亚洲无码不卡av|一区二区欧美亚洲|日躁夜躁狠狠躁2001|亚洲,超碰,欧美|18AV成人电影|午夜成人免费在线|婷婷激情网深爱五月|色欲综合成人在线|在线美女搞黄大片

中企動力 > 頭條 > python有什么框架

網(wǎng)站性能檢測評分

注:本網(wǎng)站頁面html檢測工具掃描網(wǎng)站中存在的基本問題,僅供參考。

python有什么框架

7大Python深度學習框架哪家強? 流量視頻課程

img

花心筒

關(guān)注

最近我無意間在「Best Python library for neural networks」話題下發(fā)現(xiàn)了一個我以前的數(shù)據(jù)科學棧交換(Data Science Stack Exchange)的答案,并且 Python 深度學習生態(tài)系統(tǒng)在過去兩年半中的演變打擊到了我。我在 2014 年 7 月推薦的庫,pylearn2,已經(jīng)不再被積極地開發(fā)或者維護,大量的深度學習庫開始接替它的位置。這些庫每一個都各有千秋。我們已經(jīng)在 indico 的產(chǎn)品或者開發(fā)中使用了以下列表中的大部分的技術(shù),但是對于剩下一些我們沒有使用的,我將會借鑒他人的經(jīng)驗來幫助給出 2017 年 Python 深度學習生態(tài)系統(tǒng)的清晰的、詳盡的理解。

確切地說,我們將會關(guān)注:

TheanoLasagneBlocksTensorFlowKerasMXNetPyTorch

下面是對這 7 大 Python 深度學習框架的描述以及優(yōu)缺點的介紹,而且也為每個框架的使用推薦了一些資源,接下來大家一起看看吧

Theano

鏈接:https://github/Theano/Theano

描述:Theano 是一個 Python 庫,允許你定義、優(yōu)化并且有效地評估涉及到多維數(shù)組的數(shù)學表達式。它與 GPUs 一起工作并且在符號微分方面表現(xiàn)優(yōu)秀。

文檔:http://deeplearning/software/theano/

概述:Theano 是數(shù)值計算的主力,它支持了許多我們列表當中的其他的深度學習框架。Theano 由 Frédéric Bastien 創(chuàng)建,這是蒙特利爾大學機器學習研究所(MILA)背后的一個非常優(yōu)秀的研究團隊。它的 API 水平較低,并且為了寫出效率高的 Theano,你需要對隱藏在其他框架幕后的算法相當?shù)氖煜?。如果你有著豐富的學術(shù)機器學習知識,正在尋找你的模型的精細的控制方法,或者想要實現(xiàn)一個新奇的或者不同尋常的模型,Theano 是你的首選庫??偠灾?,為了靈活性,Theano 犧牲了易用性。

優(yōu)點:

靈活正確使用時的高性能

缺點:

較高的學習難度低水平的 API編譯復雜的符號圖可能很慢

Lasagne

鏈接:https://github/Lasagne/Lasagne

描述:在 Theano 上建立和訓練神經(jīng)網(wǎng)絡(luò)的輕量級庫

文檔:http://lasagne.readthedocs.org/

概述:因為 Theano 致力于成為符號數(shù)學中最先且最好的庫,Lasagne 提供了在 Theano 頂部的抽象,這使得它更適合于深度學習。它主要由當前 DeepMind 研究科學家 Sander Dieleman 編寫并維護。Lasagne 并非是根據(jù)符號變量之間的函數(shù)關(guān)系來指定網(wǎng)絡(luò)模型,而是允許用戶在層級思考,為用戶提供了例如「Conv2DLayer」和「DropoutLayer」的構(gòu)建塊。Lasagne 在犧牲了很少的靈活性的同時,提供了豐富的公共組件來幫助圖層定義、圖層初始化、模型正則化、模型監(jiān)控和模型訓練。

仍舊非常靈活比Theano 更高級的抽象文檔和代碼中包含了各種 Pasta Puns

社區(qū)小

Blocks

鏈接:https://github/mila-udem/blocks

描述:用于構(gòu)建和訓練神經(jīng)網(wǎng)絡(luò)的 Theano 框架

文檔:http://blocks.readthedocs.io/en/latest/

概述:與 Lasagne 類似,Blocks 是在 Theano 頂部添加一個抽象層使深度學習模型比編寫原始的 Theano 更清晰、更簡單、定義更加標準化。它是由蒙特利爾大學機器學習研究所(MILA)編寫,其中一些人為搭建 Theano 和第一個神經(jīng)網(wǎng)絡(luò)定義的高級接口(已經(jīng)淘汰的 PyLearn2)貢獻了自己的一份力量。比起 Lasagne,Blocks 靈活一點,代價是入門臺階較高,想要高效的使用它有不小的難度。除此之外,Blocks 對遞歸神經(jīng)網(wǎng)絡(luò)架構(gòu)(recurrent neural network architectures)有很好的支持,所以如果你有興趣探索這種類型的模型,它值得一看。除了 TensorFlow,對于許多我們已經(jīng)部署在 indico 產(chǎn)品中的 API,Blocks 是其首選庫。

仍舊非常靈活比Theano 更高級的抽象易于測試

較高的學習難度更小的社區(qū)

TensorFlow

鏈接:https://github/tensorflow/tensorflow

描述:用于數(shù)值計算的使用數(shù)據(jù)流圖的開源軟件庫

文檔:https://tensorflow.org/api_docs/python/

概述:TensorFlow 是較低級別的符號庫(比如 Theano)和較高級別的網(wǎng)絡(luò)規(guī)范庫(比如 Blocks 和 Lasagne)的混合。即使它是 Python 深度學習庫集合的最新成員,在 Google Brain 團隊支持下,它可能已經(jīng)是最大的活躍社區(qū)了。它支持在多 GPUs 上運行深度學習模型,為高效的數(shù)據(jù)流水線提供使用程序,并具有用于模型的檢查,可視化和序列化的內(nèi)置模塊。最近,TensorFlow 團隊決定支持 Keras(我們列表中下一個深度學習庫)。雖然 TensorFlow 有著自己的缺點,但是社區(qū)似乎同意這一決定,社區(qū)的龐大規(guī)模和項目背后巨大的動力意味著學習 TensorFlow 是一次安全的賭注。因此,TensorFlow 是我們今天在 indico 選擇的深度學習庫。

由軟件巨頭 Google 支持非常大的社區(qū)低級和高級接口網(wǎng)絡(luò)訓練比基于 Theano 配置更快的模型編譯完全地多 GPU 支持

雖然Tensorflow 正在追趕,但是最初在許多基準上比基于 Theano 的慢。RNN 支持仍不如 Theano

Keras

鏈接:https://github/fchollet/keras

描述:Python 的深度學習庫。支持 Convnets、遞歸神經(jīng)網(wǎng)絡(luò)等。在 Theano 或者 TensorFlow 上運行。

文檔:https://keras.io/

概述:Keras 也許是水平最高,對用戶最友好的庫了。由 Francis Chollet(Google Brain 團隊中的另一個成員)編寫和維護。它允許用戶選擇其所構(gòu)建的模型是在 Theano 上或是在 TensorFlow 上的符號圖上執(zhí)行。Keras 的用戶界面受啟發(fā)于 Torch,所以如果你以前有過使用 Lua 語言的機器學習經(jīng)驗,Keras 絕對值得一看。由于部分非常優(yōu)秀的文檔和其相對易用性,Keras 的社區(qū)非常大并且非常活躍。最近,TensorFlow 團隊宣布計劃與 Keras 一起支持內(nèi)置,所以很快 Keras 將是 TensorFlow 項目的一個分組。

可供選擇的 Theano 或者 TensorFlow 后端直觀、高級別的端口更易學習

不太靈活,比其他選擇更規(guī)范

MXNet

鏈接:https://github/dmlc/mxnet

描述:MXNet 是一個旨在提高效率和靈活性的深度學習框架。

文檔:http://mxnet.io/api/python/index.html#python-api-reference

概述:MXNet 是亞馬遜(Amazon)選擇的深度學習庫,并且也許是最優(yōu)秀的庫。它擁有類似于 Theano 和 TensorFlow 的數(shù)據(jù)流圖,為多 GPU 配置提供了良好的配置,有著類似于 Lasagne 和 Blocks 更高級別的模型構(gòu)建塊,并且可以在你可以想象的任何硬件上運行(包括手機)。對 Python 的支持只是其冰山一角—MXNet 同樣提供了對 R、Julia、C++、Scala、Matlab,和 Javascript 的接口。如果你正在尋找最佳的性能,選擇 MXNet 吧,但是你必須愿意處理與之相對的一些 MXNet 的怪癖。

速度的標桿非常靈活

最小的社區(qū)比Theano 更困難的學習難度

PyTorch

鏈接:https://github/pytorch/pytorch

描述:Python 中的張量(Tensors)和動態(tài)神經(jīng)網(wǎng)絡(luò),有著強大的 GPU 加速。

文檔:http://pytorch.org/docs/

概述:剛剛放出一段時間,PyTorch 就已經(jīng)是我們 Python 深度學習框架列表中的一個新的成員了。它是從 Lua 的 Torch 庫到 Python 的松散端口,由于它由 Facebook 的 人工智能研究團隊(Artificial Intelligence Research team (FAIR))支持且因為它用于處理動態(tài)計算圖(Theano,TensorFlow 或者其他衍生品沒有的特性,編譯者注:現(xiàn)在 TensorFlow 好像支持動態(tài)計算圖),它變得非常的有名。PyTorch 在 Python 深度學習生態(tài)系統(tǒng)將扮演怎樣的角色還不得而知,但所有的跡象都表明,PyTorch 是我們列表中其他框架的一個非常棒的選擇。

來自Facebook 組織的支持完全地對動態(tài)圖的支持高級和低級 API 的混合

比其他選擇,PyTorch 還不太成熟(用他們自己的話說—「我們正處于早期測試版本。期待一些冒險」)除了官方文檔以外,只有有限的參考文獻/資源

今天就分享到這里了哦,明天咱們再繼續(xù)~么么噠

八款常用的 Python GUI 開發(fā)框架推薦 流量視頻課程

img

紫牧

關(guān)注

作為Python開發(fā)者,你遲早都會用到圖形用戶界面來開發(fā)應(yīng)用。本文將推薦一些 Python GUI 框架,希望對你有所幫助,如果你有其他更好的選擇,歡迎在評論區(qū)留言。

Python 的 UI 開發(fā)工具包 Kivy

https://oschina/p/kivy

Kivy是一個開源工具包能夠讓使用相同源代碼創(chuàng)建的程序能跨平臺運行。它主要關(guān)注創(chuàng)新型用戶界面開發(fā),如:多點觸摸應(yīng)用程序。Kivy還提供一個多點觸摸鼠標模擬器。當前支持的平臺包括:Linux、Windows、Mac OS X和Android。

Kivy擁有能夠處理動畫、緩存、手勢、繪圖等功能。它還內(nèi)置許多用戶界面控件如:按紐、攝影機、表格、Slider和樹形控件等。

Python 的 GUI 開發(fā)工具 Flexx

https://oschina/p/flexx

Flexx 是一個純 Python 工具包,用來創(chuàng)建圖形化界面應(yīng)用程序。其使用 Web 技術(shù)進行界面的渲染。你可以用 Flexx 來創(chuàng)建桌面應(yīng)用,同時也可以導出一個應(yīng)用到獨立的 HTML 文檔。因為使用純 Python 開發(fā),所以 Flexx 是跨平臺的。只需要有 Python 和瀏覽器就可以運行。如果是使用桌面模式運行,推薦使用 Firefox 。

Qt 庫的 Python 綁定 PyQt

https://oschina/p/pyqt

PyQt是Qt庫的Python版本。PyQt3支持Qt1到Qt3。 PyQt4支持Qt4。它的首次發(fā)布也是在1998年,但是當時它叫 PyKDE,因為開始的時候SIP和PyQt沒有分開。PyQt是用SIP寫的。PyQt 提供 GPL版和商業(yè)版。

Python圖形開發(fā)包 wxPython

https://oschina/p/wxpython

wxPython 是 Python 語言的一套優(yōu)秀的 GUI 圖形庫,允許 Python 程序員很方便的創(chuàng)建完整的、功能鍵全的 GUI 用戶界面。 wxPython 是作為優(yōu)秀的跨平臺 GUI 庫 wxWidgets 的 Python 封裝和 Python 模塊的方式提供給用戶的。

就如同Python和wxWidgets一樣,wxPython也是一款開源軟件,并且具有非常優(yōu)秀的跨平臺能力,能夠運行在32位windows、絕大多數(shù)的Unix或類Unix系統(tǒng)、Macintosh OS X上。

Tk 圖形用戶界面 Tkinter

https://oschina/p/tkinter

Tkinter(也叫Tk接口)是Tk圖形用戶界面工具包標準的Python接口。Tk是一個輕量級的跨平臺圖形用戶界面(GUI)開發(fā)工具。Tk和Tkinter可以運行在大多數(shù)的Unix平臺、Windows、和Macintosh系統(tǒng)。

Tkinter 由一定數(shù)量的模塊組成。Tkinter位于一個名為_tkinter(較早的版本名為tkinter)的二進制模塊中 。Tkinter包含了對Tk的低 級接口模塊,低級接口并不會被應(yīng)用級程序員直接使用,通常是一個共享庫(或DLL),但是在一些情況下它也被Python解釋器靜態(tài)鏈接。

Pywin32

https://oschina/p/pywin32

Windows Pywin32允許你像VC一樣的形式來使用PYTHON開發(fā)win32應(yīng)用。代碼風格可以類似win32 sdk,也可以類似MFC,由你選擇。如果你仍不放棄vc一樣的代碼過程在python下,那么這就是一個不錯的選擇。

Python 圖形界面開發(fā)包 PyGTK

https://oschina/p/pygtk

PyGTK讓你用Python輕松創(chuàng)建具有圖形用戶界面的程序.底層的GTK+提供了各式的可視元素和功能,如果需要,你能開發(fā)在GNOME桌面系統(tǒng)運行的功能完整的軟件.

PyGTK真正具有跨平臺性,它能不加修改地,穩(wěn)定運行各種操作系統(tǒng)之上,如Linux,Windows,MacOS等.除了簡單易用和快速的原型開發(fā)能力外,PyGTK還有一流的處理本地化語言的獨特功能.

用python快速開發(fā)絢麗桌面程序 pyui4win

https://oschina/p/py-ui4win

pyui4win是一個開源的采用自繪技術(shù)的界面庫。支持C++和python。用它可以很容易實現(xiàn)QQ和360安全衛(wèi)士這樣的絢麗界面。而且,pyui4win有所見即所得界面設(shè)計器,讓C++開發(fā)人員和python開發(fā)人員直接用

設(shè)計工具設(shè)計界面,而不用關(guān)心界面如何生成和運行,可以顯著縮短界面開發(fā)時間。在pyui4win中,界面甚至可以完全交給美工去處理,開發(fā)人員可以只負責處理業(yè)務(wù)邏輯,把開發(fā)人員徹底從繁雜的界面處理中解放出來。

文章來源:開源中國

文章編輯:燈塔大數(shù)據(jù)

13個Python web框架比較 推廣視頻課程

img

侯鬼神

關(guān)注

Python程序員有很多很好的選擇來創(chuàng)建Web應(yīng)用程序和API;Django,Weppy,Bottle和Flask引領(lǐng)潮流。

如果正在開發(fā)一個Web應(yīng)用程序并且已經(jīng)選擇使用Python作為構(gòu)建它的語言,那么這是一個明智的選擇。Python的開發(fā)成熟度,強大的庫以及廣泛的實際應(yīng)用使其成為Web開發(fā)的必需。

現(xiàn)在是困難的部分:從眾多可用的Python web框架中選擇一個。它們不僅數(shù)量在不斷增長,而且很難找到最適合你的。如果你正在構(gòu)建一個快速而又簡單的REST API,那么你將不需要任何完整的面向用戶的應(yīng)用程序所需的管道和連接,該應(yīng)用程序具有用戶登錄、表單驗證和上傳處理就可以了。

在本文中,我們將研究13種最廣泛部署的Python web框架。我們將關(guān)注每種web應(yīng)用程序最適合構(gòu)建哪種類型的web應(yīng)用程序,并研究它們?nèi)绾卧谝韵铝鶄€方面相互競爭:

安裝:設(shè)置不需要正式的框架項目(它可以簡單地作為包含的模塊放到現(xiàn)有的項目中)、啟動所需的模板文件最少、或者帶有某種預先配置的設(shè)置,這是多么容易或簡單。

文檔:幾乎每一個像樣的Python項目都有文檔,可以遍歷設(shè)置、演示基本用例并提供關(guān)于API的詳細信息。在這里,我們給這樣的框架更高的分數(shù):這些框架展示了如何在教程中創(chuàng)建整個應(yīng)用程序,包括常見的配方或設(shè)計模式,以及超出職責范圍(例如提供有關(guān)如何運行的詳細信息) Python變體(如PyPy或IronPython)下的框架。

管理:這是相對得分,表示配置和維護框架需要做多少工作。默認情況下,工作量最小的框架得分更高。

原生能力:包含多少組件?得分較高的是那些為國際化,HTML模板和數(shù)據(jù)訪問層提供原生支持的框架。還有一些框架使用Python最近引入的異步I/O操作的原生支持。

安全性:提供原生安全措施(如跨站點請求偽造(CSRF)保護和使用加密cookie的會話管理)的框架獲得更高的分數(shù)。

可伸縮性:大多數(shù)Python框架可以利用像Gevent或Gunicorn這樣的項目來大規(guī)模運行。在這里,我們看一下提升可伸縮性的框架原生特性,如輸出和頁面片段緩存。

如果你對性能基準感到好奇,請查看TechEmpower正在進行的一系列試驗,這些試驗比較了各種任務(wù)中的多個Web框架,并將代碼和方法發(fā)布到GitHub并進行不斷的重新評估。并非所有討論中的框架都在那里進行了分析,但是可以很好地了解哪種框架在哪種負載下表現(xiàn)最佳。

我們將分析13個框架。其中五個:CubicWeb,Django,Web2py,Weppy和Zope2,采用“控件”方法,包含你可以想象的Web應(yīng)用程序所需的大多數(shù)功能。其余八個框架: Bottle,CherryPy,F(xiàn)alcon,F(xiàn)lask,Pyramid,Tornado,Web.py和Wheezy.web,提供更簡約的外觀,交易批量和完整性,簡單易用。

讓我們從重量級開始吧。

重量級的Python Web框架

CubicWeb

CubicWeb被稱為“一個支持重用和面向?qū)ο笤O(shè)計的語義Web應(yīng)用程序框架?!边@是一個有趣的系統(tǒng),強調(diào)使用抽象和可重用的代碼塊稱為“多維數(shù)據(jù)集”,但對于某些開發(fā)人員來說可能過于抽象或特殊。

多維數(shù)據(jù)集是具有模式(數(shù)據(jù)模型),實體(編程邏輯)和視圖的軟件組件。通過組合多個立方體,每個立方體執(zhí)行自己的任務(wù),可以通過重用自己的代碼和其他代碼來編寫軟件應(yīng)用程序。

CubicWeb的核心是提供每個Web應(yīng)用程序使用的基本搭建材料:用于數(shù)據(jù)連接和存儲的“存儲庫”;用于基本HTTP請求/響應(yīng)和CRUD操作的“Web引擎”;以及用于建模數(shù)據(jù)的模式。所有這些都在Python類定義中描述。要設(shè)置和管理CubicWeb的實例,可以使用類似于Django的命令行工具。

CubicWeb似乎沒有使用Python 3的原生異步功能。包含異步的一種迂回方式是使用cubicweb.pyramid模塊將Pyramid框架用作Web服務(wù)器,并使用異步構(gòu)造在Pyramid上繪制。但是現(xiàn)在看起來更加直截了當。

要在CubicWeb應(yīng)用程序中獲取或操作持久數(shù)據(jù),可以使用關(guān)系查詢語言(RQL),它采用模糊的SQL語法,但在W3C的SparQL之后進行模式化。CubicWeb的理由再次是抽象:RQL提供了一種高度分離的路徑來相互關(guān)聯(lián)各種數(shù)據(jù)源。但是,隨著它的實現(xiàn),通過手動構(gòu)建查詢作為字符串,它可能會讓習慣于ORM的開發(fā)人員感到過時。

使用CubicWeb還有其他障礙。首先,設(shè)置可能很麻煩。因為CubicWeb有很多依賴項,所以最好使用pip install來獲取所有依賴項??赡苓€必須在本地環(huán)境中執(zhí)行一定數(shù)量的手動調(diào)整。這與運行pip install或?qū)⒖蚣艽a放入另一個項目的子文件夾的其他框架形成鮮明對比,這就是所需要的。

另一個潛在的問題是缺少本機模板引擎;生成HTML留給開發(fā)人員。可以通過使用像Jinja2這樣的第三方模板系統(tǒng)或選擇為Web UI提供工具的多維數(shù)據(jù)集來克服這個問題,例如Boostrap HTML框架的工具。

CubicWeb的一個長期問題,缺乏Python 3支持,目前已經(jīng)解決。截至2016年6月的版本3.23,CubicWeb支持Python 3,但Twisted等模塊本身并未完全移植。

與Web2py一樣,CubicWeb將其冗長的文檔稱為“書籍”。它需要時間來解釋CubicWeb的不尋常方法,演示如何構(gòu)建一些基本應(yīng)用程序,包括API引用,并且通常不會特定的方式。

Django

自Django首次出現(xiàn)以來已經(jīng)有十年,它已經(jīng)成為Python最廣泛部署的用于創(chuàng)建Web應(yīng)用程序的框架之一。 Django配備了你可能需要的大部分組件,因此它傾向于構(gòu)建大型應(yīng)用程序而不是小型應(yīng)用程序。

經(jīng)過多年在版本1.x后,Django最近在小數(shù)點的左邊創(chuàng)建了一個版本。 Django 2.0中最大的變化是框架現(xiàn)在只適用于Python 3.4及更高版本。理想情況下,你應(yīng)該使用Python 3.x,所以使用Django的1.x分支的唯一原因是你遇到了舊版本的Python。

Django吸引力的一個關(guān)鍵部分是部署速度。因為它包含了開發(fā)普通Web應(yīng)用程序所需的許多部分,所以可以快速行動。路由,URL解析,數(shù)據(jù)庫連接(包括ORM),表單驗證,攻擊保護和模板都是內(nèi)置的。

將找到最常見的Web應(yīng)用程序方案的構(gòu)建塊。例如,用戶管理可在大多數(shù)網(wǎng)站上找到,因此Django將其作為標準元素提供。Django本身具有這些功能,而不必創(chuàng)建自己的系統(tǒng)來跟蹤用戶帳戶,會話,密碼,登錄/注銷,管理員權(quán)限等。它們可以按原樣使用或擴展,以包含最少量工作的新用例。

核心是BSD,一些組件是LGPLv3??赏ㄟ^zope.formlib獲得;單獨安裝但作為項目的一部分支持。通過第三方擴展程序提供。

Django具有健全和安全的默認設(shè)置,有助于保護Web應(yīng)用程序免受攻擊。將變量放在頁面模板中時,例如帶有HTML或JavaScript的字符串,除非明確將變量實例指定為安全,否則不會按字面意義呈現(xiàn)內(nèi)容。這本身就減少了許多常見的跨站腳本問題。如果要執(zhí)行表單驗證,可以使用從簡單的CSRF保護到返回詳細錯誤反饋的完整逐個字段驗證機制的所有內(nèi)容。

如果沒有強大的文檔可以使用像Django那樣豐富和廣泛的功能。Django的文檔站點從多個角度深入研究框架的各個方面。使用Python 3或其他語言,正確的安全性,實現(xiàn)常見的Web應(yīng)用程序組件(如會話或分頁),生成站點地圖,它們都被覆蓋。還詳細描述了應(yīng)用程序模型,視圖和模板的每個層的API。

然而,強大的力量帶來了極大的復雜性。Django應(yīng)用程序以其頭重腳輕而聞名,具有許多移動部件。即使只有幾條路線的簡單Django應(yīng)用程序也需要相當多的配置才能運行。如果你的工作只是設(shè)置幾個簡單的REST端點,Django幾乎肯定是矯枉過正的。

Django也有它的怪癖。例如,頁面模板不能使用callables。示例:可以將{{user.name}}作為模板中的組件傳遞,但不能傳遞{{user.get_name()}}。這是Django確保模板不會無意中做出令人討厭的事情的方法之一,但如果你沒有為它們做好準備,這些限制可能會很刺激。雖然有解決方法,但它們往往會對性能產(chǎn)生影響。

Django的核心是同步。但是,添加異步行為的一種方法是通過Django Channels項目。這個項目是官方的Django附加組件,它為Django添加了對連接和套接字的異步處理,同時保留了Django的編程習慣用法。

web2py

在Ruby世界中,Ruby on Rails是事實上的Web框架。DePaul大學計算機科學教授Massimo Di Pierro受到Rails的啟發(fā),用Python創(chuàng)建一個易于設(shè)置和使用的Web框架。結(jié)果是Web2py。

Web2py最大的吸引力在于其內(nèi)置的開發(fā)環(huán)境。當設(shè)置Web2py實例時,將獲得一個Web界面,實際上是一個在線Python應(yīng)用程序編輯器,可以在其中配置應(yīng)用程序的組件。這通常意味著創(chuàng)建模型,視圖和控制器,每個都通過Python模塊或HTML模板進行描述。一些示例應(yīng)用程序隨附Web2py。可以將它們分開來查看它們的工作方式,或?qū)⑺鼈冇米鲉悠髂0鍋韯?chuàng)建自己的應(yīng)用程序。

開發(fā)人員通常只需下載源代碼并使用它來部署Web2py。但對于Windows或MacOS上技術(shù)含量較低的用戶,Web2py的創(chuàng)建者提供的版本基本上是獨立服務(wù)器。下載,解壓縮并運行其中一個版本,將擁有一個內(nèi)置Web2py預配置副本的本地Web服務(wù)器。這是一個很好的方法來創(chuàng)建一個Web2py應(yīng)用程序,然后可以部署其他地方。

Web2py的Web界面是使用Bootstrap 2.16.1構(gòu)建的,因此它易于操作并且易于導航。瀏覽器內(nèi)編輯器不能替代完整的IDE,但它配備了有用的輔助工具,如行編號和Python語法高亮(包括自動縮進)。還包括一個Python shell的快速Web界面,因此如果需要,可以從命令行與Web2py交互,這對專家來說是一個很好的讓步。

Web2py中使用的數(shù)據(jù)抽象系統(tǒng)與Django的ORM和受其啟發(fā)的其他ORM(例如Peewee)略有不同。這些系統(tǒng)使用Python類來定義模型,在Web2py中,使用構(gòu)造函數(shù)(如define_table)來實例化模型。這些差異中的大部分可能只會對那些已經(jīng)有過經(jīng)驗并且開始使用另一個的人產(chǎn)生震動;他們對新人來說同樣復雜。將Web2py連接到數(shù)據(jù)提供者可能不會遇到任何麻煩,因為它幾乎涉及現(xiàn)有的每個主要數(shù)據(jù)庫。

一個真正有用的數(shù)據(jù)庫相關(guān)功能是生成模型圖的能力,更好地可視化模型之間的相互關(guān)系。但是,需要安裝pygraphviz庫才能啟用該功能。

Web2py通過對jQuery和AJAX的集成支持,提供許多其他專業(yè)級組件:國際化功能,多種緩存方法,訪問控制和授權(quán),甚至前端效果(例如,表單中的日期選擇器)。雖然不允許使用中間件來替換核心Web2py功能,但也包括外部和內(nèi)部中間件的掛鉤。

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

毫無疑問,Web2py的文檔被稱為“書”。首先,它涵蓋了Web2py,Python以及用于這兩者的部署環(huán)境的大量材料。其次,它以高度可訪問的敘事風格書寫。第三,它深入討論了常見的應(yīng)用程序構(gòu)建方案。例如,有一整章使用jQuery(與Web2Py捆綁在一起)來構(gòu)建AJAX應(yīng)用程序。

Weppy

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

乍一看,Weppy代碼看起來很像Flask或Bottle代碼。啟動和運行基本的單路網(wǎng)站需要很少的指示。路徑可以通過函數(shù)裝飾器(簡單方法)或以編程方式描述,并且這樣做的語法與Flask/Bottle密切相關(guān)。除了語法的微小變化外,模板的工作方式大致相同。

Weppy與其他框架形成鮮明對比,包括它們僅作為插件或附加組件包含的一些功能。例如,F(xiàn)lask和Bottle都沒有內(nèi)置的ORM或數(shù)據(jù)管理系統(tǒng)。Weppy包含一個ORM,雖然它是基于pyDAL項目而不是更受歡迎的SQLAlchemy。Weppy甚至支持模式遷移,Django支持模式遷移作為其ORM的一部分(同樣,Django的遷移系統(tǒng)也更加自動化)。雖然Weppy有一個擴展機制,但官方批準的附加組件列表很小,遠小于Flask的擴展目錄。

像Weppy這樣的輕量級框架通常用于構(gòu)建RESTful API,而Weppy則為此配備了便利功能。在路由上放置一個@service修飾器,返回的數(shù)據(jù)將自動格式化為選擇的JSON或XML。

Weppy包含的其他功能更符合更大的框架,但它們是在沒有批量的情況下實現(xiàn)的。示例:數(shù)據(jù)驗證機制,表單處理,響應(yīng)緩存和用戶驗證。在所有這些情況下,Weppy采取“恰到好處”的方法。提供的功能并不像在Django大小的框架中那樣完整,但開發(fā)人員不需要投入大量精力來使它們變得有用,并且它們可以在事后得到擴展。

Weppy中發(fā)現(xiàn)的另一個通常與更重量級框架相關(guān)的功能是國際化支持。模板中的字符串可以根據(jù)應(yīng)用程序提供的區(qū)域設(shè)置文件進行翻譯,這些文件是簡單的Python字典。也可以通過解析瀏覽器請求(即Accept-Language HTTP標頭)或?qū)⒎g綁定到特定路由來設(shè)置語言選擇。

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

Weppy的長期計劃包括支持異步和套接字作...

Python的框架可以用來做什么? 推廣視頻課程

img

若化生

關(guān)注

初學者有什么不懂的可以私信我——我剛整理了一套2018最新的0基礎(chǔ)入門教程,無私分享,獲取方法:關(guān)注小編頭條號,發(fā)私信:【學習資料】 即可獲取,內(nèi)附:開發(fā)工具和安裝包,以及系統(tǒng)學習路線圖。

python能夠用來干什么?

1、WEB前端

效勞器端編程,具有豐厚的Web開發(fā)框架,如Django和TurboGears,快速完成一個網(wǎng)站的開發(fā)和Web效勞。典型如國內(nèi)的豆瓣、果殼網(wǎng)等;國外的Google、Dropbox等。

2、系統(tǒng)網(wǎng)絡(luò)運維

在運維的作業(yè)中,有大量重復性作業(yè)的地方,并需要做管理系統(tǒng)、監(jiān)控系統(tǒng)、發(fā)布系統(tǒng)等,將作業(yè)自動化起來,進步作業(yè)效率,這樣的場景Python是一門十分合適的語言。

3、科學與數(shù)字核算

Python被廣泛的運用于科學和數(shù)字核算中,例如生物信息學、物理、建筑、地理信息系統(tǒng)、圖畫可視化分析、生命科學等,常用numpy、SciPy、Biopython、SunPy等。

4、3D游戲開發(fā)

Python有很好的3D渲染庫和游戲開發(fā)框架,有許多運用Python開發(fā)的游戲,如迪斯尼卡通城、黑暗之刃。常用PyGame、Pykyra等和一個PyWeek的比賽。

5、圖形界面開發(fā)

Python可編寫桌面圖形用戶界面,還能夠擴展微軟的Windows,常用Tk、GTK+、PyQt、win32等。

6、網(wǎng)絡(luò)編程

除了網(wǎng)絡(luò)和互聯(lián)網(wǎng)的支撐,Python還供給了對底層網(wǎng)絡(luò)的支撐,有易于運用的Socket接口和一個異步的網(wǎng)絡(luò)編程框架Twisted Python.

今天的文章給大家?guī)У竭@里,一直在堅持給大家更新文章,如果對你有所幫助,可以多多轉(zhuǎn)發(fā)和關(guān)注。

初學者有什么不懂的可以私信我——我剛整理了一套2018最新的0基礎(chǔ)入門教程,無私分享,獲取方法:關(guān)注小編頭條號,發(fā)私信:【學習資料】 即可獲取,內(nèi)附:開發(fā)工具和安裝包,以及系統(tǒng)學習路線圖。

2018年要學習的10大Python Web框架 推廣視頻課程

img

顏初

關(guān)注

通過為開發(fā)人員提供應(yīng)用程序開發(fā)結(jié)構(gòu),框架使開發(fā)人員的生活更輕松。他們自動執(zhí)行通用解決方案,縮短開發(fā)時間,并允許開發(fā)人員更多地關(guān)注應(yīng)用程序邏輯而不是常規(guī)元素。

在本文中,我們分享了我們自己的前十大Python Web框架列表,我們認為這些列表對于您成為專業(yè)后端開發(fā)人員以及改進現(xiàn)有技能集的方式將會非常有用。請記住,這些框架并沒有按照特定的順序排列:我們專注于展示你能做什么,而不是告訴你應(yīng)該做什么。

有些事情要考慮

在決定使用哪個框架時,請查看項目的規(guī)模和復雜程度。如果您希望開發(fā)的是一個包含功能和需求的大型系統(tǒng),那么全棧框架可能是正確的選擇。如果你的應(yīng)用在更小和更簡單的一面,你應(yīng)該考慮一個微框架。

你可以找到一些框架的種類和焦點信息在這里。但是,最終的決定應(yīng)該來自您對項目的理解以及您想要簡化的任務(wù)。

但是,框架也可能阻礙發(fā)展。在選擇全棧框架時,您經(jīng)常注冊一組限制。當然,你可以找到解決這些問題的方法,但要小心,不要花更多的時間來爭取自己的自由,而是要用純Python編寫應(yīng)用程序。

全堆??蚣?/p>

Django是一個免費的開源全棧Python框架。它試圖默認包含所有必要的功能,而不是將它們作為單獨的庫提供。

Django的一些示例性功能是它的身份驗證,URL路由,,對象關(guān)系映射器(ORM)和數(shù)據(jù)庫模式遷移(Django v.1.7 +)。

Django使用它的ORM將對象映射到數(shù)據(jù)庫表。相同的代碼適用于不同的數(shù)據(jù)庫,并不難從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個數(shù)據(jù)庫。Django使用的主要數(shù)據(jù)庫是PostgreSQL,MySQL,SQLite和Oracle,但第三方驅(qū)動程序也允許您使用其他數(shù)據(jù)庫。

在SteelKiwi,我們使用Django作為后端開發(fā)的主要框架。如果您想看看我們已經(jīng)使用Django開發(fā)的驚人的應(yīng)用程序,請訪問我們的項目頁面。

Pyramid是一個開源的基于Python的Web應(yīng)用程序框架。其主要目標是盡可能以最小的復雜性進行操作。

金字塔最顯著的特點是它能夠同時適用于小型和大型應(yīng)用程序。金字塔的一些很棒的功能包括:

單文件應(yīng)用程序

全面支持模板和資產(chǎn)規(guī)范

靈活的認證和授權(quán)

,支持和全面的數(shù)據(jù)文檔

和許多每個路由視圖

TurboGears是一個開源的,數(shù)據(jù)驅(qū)動的全棧Web應(yīng)用程序框架。

它允許您快速開發(fā)可擴展的數(shù)據(jù)驅(qū)動的Web應(yīng)用程序。TurboGears配備了用戶友好的模板和強大靈活的ORM。

TurboGears的一些獨特功能包括:

多數(shù)據(jù)庫支持

MVC風格的架構(gòu)

支持SQLObject和SQLAlchemy

和Genshi包含在首選的模板語言中

使用FormEncode進行驗證

作為網(wǎng)絡(luò)服務(wù)器的塔

一個簡化前端設(shè)計和服務(wù)器開發(fā)協(xié)調(diào)的應(yīng)用程序庫

模板

面向前端的基于WSGI的服務(wù)器(粘貼HTTP服務(wù)器,CherryPy WSGI / HTTP服務(wù)器等)

命令行工具

集成

所有功能都作為函數(shù)裝飾器實現(xiàn)

Web2py是一個可擴展的開源全棧Python框架。但是,在進一步閱讀之前,您應(yīng)該知道Web2py不支持Python 3。

不過,Web2py的優(yōu)點在于它配備了自己的基于Web的IDE,其中包括代碼編輯器,調(diào)試器和一鍵式部署。

其他有價值的Web2py功能包括:

沒有安裝和配置要求

能夠在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支持Python 2.5-2.7或Java + Python的虛擬主機上運行

多種協(xié)議的可讀性

數(shù)據(jù)安全可防止跨站點腳本,注入漏洞和惡意文件執(zhí)行等漏洞

成功使用軟件工程實踐,使代碼易于閱讀和維護

錯誤跟蹤,徹底的錯誤記錄和票務(wù)

支持國際化

向后兼容性確保以用戶為導向,而不需要失去與早期版本的聯(lián)系

Flask是一個在BSD許可下可用的Python框架。它受到了Sinatra Ruby框架的啟發(fā)。Flask依賴于Werkzeug WSGI工具包和Jinja2模板。

Flask背后的主要思想是幫助構(gòu)建堅實的Web應(yīng)用程序基礎(chǔ)。從那里,你可以使用任何你可能需要的擴展。

Flask的輕量化和模塊化設(shè)計使其能夠輕松適應(yīng)開發(fā)人員的需求。它包含許多有用的開箱即用功能:

內(nèi)置開發(fā)服務(wù)器和快速調(diào)試器

集成支持單元測試

安全的Cookie支持(客戶端會話)

WSGI 1.0合規(guī)性

基于Unicode

能夠插入任何ORM

HTTP請求處理

瓶子是一個微框架。Bottle最初意味著構(gòu)建API,它將所有內(nèi)容都實現(xiàn)在一個源文件中。除了Python標準庫之外,它沒有任何依賴關(guān)系。使用Bottle進行編碼可以讓您更接近金屬而不是使用任何全??蚣苓M行編碼。

其默認功能包括路由,模板,實用程序以及WSGI標準的基本抽象。

路由 - 支持對函數(shù)調(diào)用映射的請求,使您可以實現(xiàn)干凈和動態(tài)的URL

模板 - 快速和Pythonic 開箱即用,全面支持mako,jinja2和獵豹

實用程序 - 舒適地訪問表單數(shù)據(jù),文件上傳,Cookie,標題和其他與HTTP相關(guān)的元數(shù)據(jù)

服務(wù)器-支持一個內(nèi)置的HTTP開發(fā)服務(wù)器fapws3,比約恩,GAE,СherryPy,以及任何其他WSGI能力的HTTP服務(wù)器

Bottle是原型開發(fā),學習Web框架組織以及構(gòu)建簡單個人應(yīng)用的完美解決方案。

CherryPy是一個開源,極簡主義的Web框架。它使構(gòu)建Python Web應(yīng)用程序與構(gòu)建任何其他面向?qū)ο蟮某绦驘o異。

事實上,CherryPy支持的網(wǎng)絡(luò)應(yīng)用程序是一個獨立的Python應(yīng)用程序,它嵌入了自己的多線程網(wǎng)絡(luò)服務(wù)器。CherryPy應(yīng)用程序可在任何支持Python的操作系統(tǒng)上運行(Windows,MacOS,Linux等)。它們可以部署在任何可以運行普通Python應(yīng)用程序的地方。CherryPy應(yīng)用程序不需要Apache,但是您可以在Apache后面運行CherryPy應(yīng)用程序,以及在Lighttpd或IIS后面運行它。

CherryPy不是一個非常有限的框架,因為它允許您使用任何類型的技術(shù)進行模板化,數(shù)據(jù)訪問等。但是,它仍然能夠處理會話,靜態(tài),Cookie,文件上傳以及web框架通常可以執(zhí)行的其他任何操作。

一些默認的CherryPy功能包括:

一個HTTP / 1.1兼容WSGI線程池網(wǎng)絡(luò)服務(wù)器

簡單一次運行多個HTTP服務(wù)器

一個強大的配置系統(tǒng)

一個靈活的插件系統(tǒng)

出的現(xiàn)成的工具緩存,編碼,會話,認證,靜態(tài)內(nèi)容,并等

內(nèi)置支持分析,覆蓋和測試

能夠在Python 2.7+,Python 3.1+,PyPy,Jython和Android上運行

異步框架

Sanic是一個構(gòu)建在uvloop上的Python Web框架,專門為通過異步請求處理的快速HTTP響應(yīng)而創(chuàng)建。

它運行在Python 3.5+上。Sanic支持異步請求處理程序,這使它與Python 3.5的異步/等待函數(shù)兼容。這提高了速度,提供了非阻塞功能。

在一個進程和100個連接的基準測試中,Sanic每秒能夠處理33,342個請求。

Tornado是一個Python Web框架和異步網(wǎng)絡(luò)庫。它使用非阻塞網(wǎng)絡(luò)I / O并解決C10k問題(意思是說,如果配置正確,它可以處理10,000多個并發(fā)連接)。

這使它成為構(gòu)建需要高性能和數(shù)萬并發(fā)用戶的應(yīng)用程序的理想工具。

龍卷風的主要特點是:

內(nèi)置的用戶認證支持

實時服務(wù)

高品質(zhì)的性能

基于Python的網(wǎng)頁模板語言

非阻塞HTTP客戶端

實施第三方認證和授權(quán)計劃(Google OpenID / OAuth,F(xiàn)acebook登錄,雅虎BBAuth,F(xiàn)riendFeed OpenID / OAuth,)

支持翻譯和本土化

其他

Dash是一個開源Python框架,用于構(gòu)建分析型Web應(yīng)用程序。對于不熟悉Web開發(fā)的Python數(shù)據(jù)科學家來說,這尤其有利。

Dash應(yīng)用程序是運行并通過HTTP請求與JSON數(shù)據(jù)包進行通信的Web服務(wù)器。他們的前端使用呈現(xiàn)組件

使用Dash開發(fā)的應(yīng)用程序在Web瀏覽器中呈現(xiàn),并可以部署到服務(wù)器。這也意味著Dash應(yīng)用程序本質(zhì)上是跨平臺和移動就緒的。

Dash開發(fā)人員可以訪問底層Flask實例及其所有可配置屬性。為了擴展Dash應(yīng)用程序的功能,開發(fā)人員還可以使用一套豐富的

選擇一個Python Web框架

正確的框架可能是您開發(fā)一個成功項目所需的一切。我們真的希望你在本文中找到了一個有趣的框架。如果您有興趣探索更多選項。

另外,歡迎私信小編交流 Python 的學習經(jīng)驗哦

python哪幾種開源框架成為大主流【菜鳥必看】 互聯(lián)網(wǎng)視頻課程

img

楊醉山

關(guān)注

使用Python進行Web應(yīng)用程序開發(fā)的框架學習階段。目前Python的網(wǎng)絡(luò)編程框架已經(jīng)多達幾十個,逐個學習它們顯然不現(xiàn)實。今天就給大家介紹幾個主流Python框架:Django、Tornado、Flask、Twisted。

①Django發(fā)布于2003年是一款用Python語言寫的免費開源的 Python Web應(yīng)用開發(fā)框架,是當前Python世界里最負盛名且最成熟的網(wǎng)絡(luò)框架。最初用來制作在線新聞的Web站點,目前已發(fā)展為應(yīng)用最廣泛的Python網(wǎng)絡(luò)框架。

②Tornado一這里是一款可擴展的,非阻塞的Web服務(wù)器,應(yīng)用開發(fā)框架,以及異步聯(lián)網(wǎng)庫,一個強大的、支持協(xié)程、高效并發(fā)且可擴展的Web服務(wù)器Tornado的強項在于可以利用它的異步協(xié)程機制開發(fā)高并發(fā)的服務(wù)器系統(tǒng)。

③Flask是Python Web框架族里比較年輕的一個框架,這使得它吸收了其他框架的優(yōu)點并且把自己的主要領(lǐng)域定義在了微小項目上。

④Twisted是一個有著十多年歷史的開源事件驅(qū)動框架。Twisted不像前3種著眼于網(wǎng)絡(luò)HTTP應(yīng)用開發(fā),而是適用于從傳輸層到自定義應(yīng)用協(xié)議的所有類型的網(wǎng)絡(luò)程序的開發(fā),并能在不同的操作系統(tǒng)上提供很高的運行效率。支持許多常見的傳輸及應(yīng)用層協(xié)議,如TCP、UDP、SSL/TLS、HTTP、IMAP、SSH、IRC以及FTP。還支持Unix domain sockets,在MIT許可下應(yīng)用,Twisted附帶了一個可以web服務(wù)器上運行的WSGI,它能夠為其他Python web應(yīng)用程序允許開發(fā)人員使用的服務(wù)器定制HTTP服務(wù)。

如果我的分享對你有幫助,請你關(guān)注我頭條號。

2018年要學習的10大Python Web框架 營銷視頻課程

img

Levana

關(guān)注

通過為開發(fā)人員提供應(yīng)用程序開發(fā)結(jié)構(gòu),框架使開發(fā)人員的生活更輕松。他們自動執(zhí)行通用解決方案,縮短開發(fā)時間,并允許開發(fā)人員更多地關(guān)注應(yīng)用程序邏輯而不是常規(guī)元素。

在本文中,我們分享了我們自己的前十大Python Web框架列表,我們認為這些列表對于您成為專業(yè)后端開發(fā)人員以及改進現(xiàn)有技能集的方式將會非常有用。請記住,這些框架并沒有按照特定的順序排列:我們專注于展示你能做什么,而不是告訴你應(yīng)該做什么。

有些事情要考慮

在決定使用哪個框架時,請查看項目的規(guī)模和復雜程度。如果您希望開發(fā)的是一個包含功能和需求的大型系統(tǒng),那么全??蚣芸赡苁钦_的選擇。如果你的應(yīng)用在更小和更簡單的一面,你應(yīng)該考慮一個微框架。

你可以找到一些框架的種類和焦點信息在這里。但是,最終的決定應(yīng)該來自您對項目的理解以及您想要簡化的任務(wù)。

但是,框架也可能阻礙發(fā)展。在選擇全??蚣軙r,您經(jīng)常注冊一組限制。當然,你可以找到解決這些問題的方法,但要小心,不要花更多的時間來爭取自己的自由,而是要用純Python編寫應(yīng)用程序。

全堆??蚣?/p>

Django是一個免費的開源全棧Python框架。它試圖默認包含所有必要的功能,而不是將它們作為單獨的庫提供。

Django的一些示例性功能是它的身份驗證,URL路由,,對象關(guān)系映射器(ORM)和數(shù)據(jù)庫模式遷移(Django v.1.7 +)。

Django使用它的ORM將對象映射到數(shù)據(jù)庫表。相同的代碼適用于不同的數(shù)據(jù)庫,并不難從一個數(shù)據(jù)庫轉(zhuǎn)移到另一個數(shù)據(jù)庫。Django使用的主要數(shù)據(jù)庫是PostgreSQL,MySQL,SQLite和Oracle,但第三方驅(qū)動程序也允許您使用其他數(shù)據(jù)庫。

在SteelKiwi,我們使用Django作為后端開發(fā)的主要框架。如果您想看看我們已經(jīng)使用Django開發(fā)的驚人的應(yīng)用程序,請訪問我們的項目頁面。

Pyramid是一個開源的基于Python的Web應(yīng)用程序框架。其主要目標是盡可能以最小的復雜性進行操作。

金字塔最顯著的特點是它能夠同時適用于小型和大型應(yīng)用程序。金字塔的一些很棒的功能包括:

單文件應(yīng)用程序

全面支持模板和資產(chǎn)規(guī)范

靈活的認證和授權(quán)

,支持和全面的數(shù)據(jù)文檔

和許多每個路由視圖

TurboGears是一個開源的,數(shù)據(jù)驅(qū)動的全棧Web應(yīng)用程序框架。

它允許您快速開發(fā)可擴展的數(shù)據(jù)驅(qū)動的Web應(yīng)用程序。TurboGears配備了用戶友好的模板和強大靈活的ORM。

TurboGears的一些獨特功能包括:

多數(shù)據(jù)庫支持

MVC風格的架構(gòu)

支持SQLObject和SQLAlchemy

和Genshi包含在首選的模板語言中

使用FormEncode進行驗證

作為網(wǎng)絡(luò)服務(wù)器的塔

一個簡化前端設(shè)計和服務(wù)器開發(fā)協(xié)調(diào)的應(yīng)用程序庫

模板

面向前端的基于WSGI的服務(wù)器(粘貼HTTP服務(wù)器,CherryPy WSGI / HTTP服務(wù)器等)

命令行工具

集成

所有功能都作為函數(shù)裝飾器實現(xiàn)

Web2py是一個可擴展的開源全棧Python框架。但是,在進一步閱讀之前,您應(yīng)該知道Web2py不支持Python 3。

不過,Web2py的優(yōu)點在于它配備了自己的基于Web的IDE,其中包括代碼編輯器,調(diào)試器和一鍵式部署。

其他有價值的Web2py功能包括:

沒有安裝和配置要求

能夠在Windows,Mac,Linux / Unix,Google App Engine,Amazon EC2以及任何支持Python 2.5-2.7或Java + Python的虛擬主機上運行

多種協(xié)議的可讀性

數(shù)據(jù)安全可防止跨站點腳本,注入漏洞和惡意文件執(zhí)行等漏洞

成功使用軟件工程實踐,使代碼易于閱讀和維護

錯誤跟蹤,徹底的錯誤記錄和票務(wù)

支持國際化

向后兼容性確保以用戶為導向,而不需要失去與早期版本的聯(lián)系

Flask是一個在BSD許可下可用的Python框架。它受到了Sinatra Ruby框架的啟發(fā)。Flask依賴于Werkzeug WSGI工具包和Jinja2模板。

Flask背后的主要思想是幫助構(gòu)建堅實的Web應(yīng)用程序基礎(chǔ)。從那里,你可以使用任何你可能需要的擴展。

Flask的輕量化和模塊化設(shè)計使其能夠輕松適應(yīng)開發(fā)人員的需求。它包含許多有用的開箱即用功能:

內(nèi)置開發(fā)服務(wù)器和快速調(diào)試器

集成支持單元測試

安全的Cookie支持(客戶端會話)

WSGI 1.0合規(guī)性

基于Unicode

能夠插入任何ORM

HTTP請求處理

瓶子是一個微框架。Bottle最初意味著構(gòu)建API,它將所有內(nèi)容都實現(xiàn)在一個源文件中。除了Python標準庫之外,它沒有任何依賴關(guān)系。使用Bottle進行編碼可以讓您更接近金屬而不是使用任何全??蚣苓M行編碼。

其默認功能包括路由,模板,實用程序以及WSGI標準的基本抽象。

路由 - 支持對函數(shù)調(diào)用映射的請求,使您可以實現(xiàn)干凈和動態(tài)的URL

模板 - 快速和Pythonic 開箱即用,全面支持mako,jinja2和獵豹

實用程序 - 舒適地訪問表單數(shù)據(jù),文件上傳,Cookie,標題和其他與HTTP相關(guān)的元數(shù)據(jù)

服務(wù)器-支持一個內(nèi)置的HTTP開發(fā)服務(wù)器fapws3,比約恩,GAE,СherryPy,以及任何其他WSGI能力的HTTP服務(wù)器

Bottle是原型開發(fā),學習Web框架組織以及構(gòu)建簡單個人應(yīng)用的完美解決方案。

CherryPy是一個開源,極簡主義的Web框架。它使構(gòu)建Python Web應(yīng)用程序與構(gòu)建任何其他面向?qū)ο蟮某绦驘o異。

事實上,CherryPy支持的網(wǎng)絡(luò)應(yīng)用程序是一個獨立的Python應(yīng)用程序,它嵌入了自己的多線程網(wǎng)絡(luò)服務(wù)器。CherryPy應(yīng)用程序可在任何支持Python的操作系統(tǒng)上運行(Windows,MacOS,Linux等)。它們可以部署在任何可以運行普通Python應(yīng)用程序的地方。CherryPy應(yīng)用程序不需要Apache,但是您可以在Apache后面運行CherryPy應(yīng)用程序,以及在Lighttpd或IIS后面運行它。

CherryPy不是一個非常有限的框架,因為它允許您使用任何類型的技術(shù)進行模板化,數(shù)據(jù)訪問等。但是,它仍然能夠處理會話,靜態(tài),Cookie,文件上傳以及web框架通??梢詧?zhí)行的其他任何操作。

一些默認的CherryPy功能包括:

一個HTTP / 1.1兼容WSGI線程池網(wǎng)絡(luò)服務(wù)器

簡單一次運行多個HTTP服務(wù)器

一個強大的配置系統(tǒng)

一個靈活的插件系統(tǒng)

出的現(xiàn)成的工具緩存,編碼,會話,認證,靜態(tài)內(nèi)容,并等

內(nèi)置支持分析,覆蓋和測試

能夠在Python 2.7+,Python 3.1+,PyPy,Jython和Android上運行

異步框架

Sanic是一個構(gòu)建在uvloop上的Python Web框架,專門為通過異步請求處理的快速HTTP響應(yīng)而創(chuàng)建。

它運行在Python 3.5+上。Sanic支持異步請求處理程序,這使它與Python 3.5的異步/等待函數(shù)兼容。這提高了速度,提供了非阻塞功能。

在一個進程和100個連接的基準測試中,Sanic每秒能夠處理33,342個請求。

Tornado是一個Python Web框架和異步網(wǎng)絡(luò)庫。它使用非阻塞網(wǎng)絡(luò)I / O并解決C10k問題(意思是說,如果配置正確,它可以處理10,000多個并發(fā)連接)。

這使它成為構(gòu)建需要高性能和數(shù)萬并發(fā)用戶的應(yīng)用程序的理想工具。

龍卷風的主要特點是:

內(nèi)置的用戶認證支持

實時服務(wù)

高品質(zhì)的性能

基于Python的網(wǎng)頁模板語言

非阻塞HTTP客戶端

實施第三方認證和授權(quán)計劃(Google OpenID / OAuth,F(xiàn)acebook登錄,雅虎BBAuth,F(xiàn)riendFeed OpenID / OAuth,)

支持翻譯和本土化

其他

Dash是一個開源Python框架,用于構(gòu)建分析型Web應(yīng)用程序。對于不熟悉Web開發(fā)的Python數(shù)據(jù)科學家來說,這尤其有利。

Dash應(yīng)用程序是運行并通過HTTP請求與JSON數(shù)據(jù)包進行通信的Web服務(wù)器。他們的前端使用呈現(xiàn)組件

使用Dash開發(fā)的應(yīng)用程序在Web瀏覽器中呈現(xiàn),并可以部署到服務(wù)器。這也意味著Dash應(yīng)用程序本質(zhì)上是跨平臺和移動就緒的。

Dash開發(fā)人員可以訪問底層Flask實例及其所有可配置屬性。為了擴展Dash應(yīng)用程序的功能,開發(fā)人員還可以使用一套豐富的

選擇一個Python Web框架

正確的框架可能是您開發(fā)一個成功項目所需的一切。我們真的希望你在本文中找到了一個有趣的框架。如果您有興趣探索更多選項。

另外,歡迎私信小編交流 Python 的學習經(jīng)驗哦

img

在線咨詢

建站在線咨詢

img

微信咨詢

掃一掃添加
動力姐姐微信

img
img

TOP