❶ python架構是什麼
Python中的架構就是框架,這些框架可以讓web應用的開發更輕松。
這些框架把不同的模塊集成在一起,讓你更快的開發程序而不用注意一些細節。
Python中幾種框架的介紹:
Django: Python Web應用開發框架
Django 應該是最出名的Python框架,GAE甚至Erlang都有框架受它影響。Django是走大而全的方向,它最出名的是其全自動化的管理後台:只需要使用起ORM,做簡單的對象定義,它就能自動生成資料庫結構、以及全功能的管理後台。
Flask:一個用Python編寫的輕量級Web應用框架
Flask是一個使用Python編寫的輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask也被稱為「microframework」,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。
Web2py:全棧式Web框架
Web2py是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的資料庫驅動的應用,兼容Google App Engine。
Tornado:非同步非阻塞IO的Python Web框架
Tornado的全稱是Torado Web Server,從名字上看就可知道它可以用作Web伺服器,但同時它也是一個Python Web的開發框架。最初是在FriendFeed公司的網站上使用,FaceBook收購了之後便開源了出來。
更多Python知識,請關註:Python自學網!!
❷ python一般是學什麼框架
1、Django
Django是一個開放源代碼的Web應用框架,採用了MVC的框架模式,即模型M,視圖V和控制器C。Django的主要目的是簡便、快速的開發資料庫驅動的網站,強調快速開發和DRY(Do Not Repeat Yourself)原則。它強調代碼復用,多個組件可以很方便的以"插件"形式服務於整個框架。Django有許多功能強大的第三方插件,你甚至可以很方便的開發出自己的工具包,這使得Django具有很強的可擴展性。
2、Flask
Flask是一個使用 Python 編寫的輕量級 Web 應用框架,它使用簡單的核心,沒有默認使用的資料庫、窗體驗證工具,用extension 增加其他功能,也被稱為 "microframework" 。
3、Tornado
Tornado是一種 Web 伺服器軟體的開源版本,獨特之處在於其所有開發工具能夠使用在應用開發的任意階段以及任何檔次的硬體資源上。而且完整集的Tornado工具可以使開發人員完全不用考慮與目標連接的策略或目標存儲區大小。
❸ python web開發用哪個框架比較好
(1)Django。Django的文檔最完善、市場佔有率最高、招聘職位最多估計大家都沒什麼意見。完美的文檔,Django的成功,我覺得很大一部分原因要歸功於Django近乎完美的官方文檔(包括Django book)。全套的解決方案,Django象Rails一樣,提供全套的解決方案(full-stack framework + batteries included),基本要什麼有什麼(比如:cache、session、feed、orm、geo、auth),而且全部Django自己造,開發網 站應手的工具Django基本都給你做好了,因此開發效率是不用說的,出了問題也算好找,不在你的代碼里就在Django的源碼里。
(2)Pylons和Django的設計理念完全不同,Pylons本身只有兩千行左右的Python代碼,不過它還附帶有一些幾乎就是Pylons御用 的第三方模塊。Pylons只提供一個架子和可選方案,你可以根據自己的喜好自由的選擇Template、ORM、form、auth等組件,系統高度可 定製。我們常說Python是一個膠水語言(glue language),那麼我們完全可以說Pylons就是一個用膠水語言設計的膠水框架。
(3)Tornado即是一個Web server(對此本文不作詳述),同時又是一個類web.py的micro-framework,作為框架Tornado的思想主要來源於Web.py,大家在Web.py的網站首頁也可以看到Tornado的大佬Bret Taylor的這么一段話(他這里說的FriendFeed用的框架跟Tornado可以看作是一個東西):
(4)Bottle和Flask作為新生一代Python框架的代表,挺有意思的是都採用了decorator的方式配置URL路由。
(5)Flask 精簡
(6)web.py 非常精簡
❹ Python三大web框架分別是什麼 哪個更好
【導讀】目前,Python比較火的三大web框架有Django、Flask和Tornado,要論這三個Web框架哪個更好的話,建議一點,Django幫我們事先搭建了好多,上手會快一些,學習的話可以先從Django學起,然後再學習Flask和Tornado,下面我們就來具體了解一下Python三大web框架的詳情。
1、Django
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,模板T和視圖V。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。
2、Flask
Flask是一個使用Python編寫的輕量級Web應用框架。其 WSGI工具箱採用Werkzeug ,模板引擎則使用 Jinja2
。Flask使用BSD授權。
Flask也被稱為 「microframework」 ,因為它使用簡單的核心,用 extension
增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm +
Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。
3、Tornado
Tornado是一種 Web 伺服器軟體的開源版本。Tornado 和現在的主流 Web 伺服器框架(包括大多數 Python
的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。
得利於其 非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個
理想框架。
關於Python三大web框架的簡單介紹,就給大家分享到這里了,當然學習是永無止境的,學習一項技能更是受益終身,所以,只要肯努力學,什麼時候開始都不晚,希望大家抓緊時間進行學習吧。
❺ python的web開發框架有哪些
1.CubicWeb
CubicWeb的最重要的功能是其代碼的可重用性,由一個個代碼單元組成。它靈活又強大,並且還有一些特別的功能,包括RQL查詢語言和支持有效編碼的語義視圖功能。這是語義Web應用程序的最佳解決方案,並且提供理想的環境。
2.TurboGears
TurboGears也稱為是框架的終結者,因為它雖然有著其他Python框架都有的功能,卻不像其他框架那樣有局限性。它甚至能適用於簡單的微架構項目。它給人的感覺就不像是工作在框架上,而像是在寫新的功能。你可以在幾分鍾之內可以創建一個read-to-extend應用,並且我們可以在網上找到大量的教程。
3.Zope2
Zope是不同Web框架集合在一起的完整家庭。與其他框架相比,zope2在當前的開發環境中對於內容管理系統是相當有限的。
Zope工具包是一個很好的庫資源,允許使用重用代碼和不同的庫。
4.web2py
web2py最重要的因素是其外部零依賴,可以創建、復原、管理和修改在瀏覽器中的應用程序。對於一些簡單的web開發任務,大部分都可以自動化快速開發。程序員甚至不需要再准備單一的開發、調試、測試、部署和資料庫處理的封裝包。內置的Web界面中這些都有,在使用之前也不需要進行安裝。
5.Pylons
靈活性是pylons框架的主要特點之一。它可以將不同Python框架提供的某些最好功能,整合到同一個地方。Pyramid是pylons的第一批產品之一,它把重點放在了快速和靈活開發實踐上。你可以挑選任何你認為可以提高Web開發效率的功能整合到一起。
6.Grok
它由Zope工具包提供支持,並且一開始的時候是作為一個易擴展的Zope工具箱,為了方便那些菜鳥程序員的使用而開發
的。對於Web應用,Grok不但能提供多個構件,還有一個隨時可以提供支持的很好社區。它提供了一種更為簡單和靈活的學習Python的模式。它配備的可DRY方法使得它成為了一個很好的工具。
7.Web.py
之所以說這是一款非常獨特的框架,主要是因為它的簡單性和功能強大的開發能力。你可以用Python語言舒舒服服地編寫web應用程序。你會因為它的零局限性和易用性喜歡上web.py。有些程序員可能會發現它對功能的限制比較少,因為它預留了整合的空間,所以你不必一下子載入所有的功能,尤其是那些你並不需要的。
關於框架選擇的誤區:
1.
哪個框架最好
2. 過分關注性能
❻ Python幾種主流框架比較
Django:Python界最全能的Web開發框架,各種功能完備,可維護性和開發速度都非常強大。常有人說Django慢,其實主要慢在Django
ORM與資料庫的交互上,所以是否選擇使用Django,取決於項目對資料庫交互性的要求以及各種優化。
而對於Django的同步特性導致吞吐量小的問題,其實可以通過Celery等解決,不算是什麼根本問題。Django代表的項目有:Instagram、guardian等。
Flask:屬於微框架的典範,也是Python代碼寫的最好的項目之一。Flask框架的靈活性很高,但也是一把雙刃劍,能用好Flask的,可以做成Pinterest,用不好就沒有什麼太大的作用了。Flask雖然屬於微框架,但也可以做成規模化的Flask,加上flask可以自由選擇自己的資料庫交互組件,再加上celery+redis等非同步特性以後,flask框架的性能非常不錯,之所以很多團隊選擇flask框架,主要原因就是對靈活性的要求。
Tornado:天生非同步,性能強悍,這是它的代名詞。對比Django而言,Tornado屬於較為原始的框架,諸多內容需要自己去處理。不過,隨著項目的不斷壯大,框架能夠提供的功能佔比越來越小,更多的內容需要團隊自己去實現,而大項目往往需要性能的保證,這時候Tornado就是非常不錯的選擇。代表項目:知乎等。
❼ python web開發 該用什麼框架
Djang Python Web應用開發框架
Django是一個開放源代碼的Web應用框架,由Python寫成。採用了MTV的框架模式,即模型M,視圖V和模版T。它最初是被開發來用於管理勞倫斯出版集團旗下的一些以新聞內容為主的網站的,即是CMS(內容管理系統)軟體。
Flask:一個用Python編寫的輕量級Web應用框架
Flask是一個使用 Python 編寫的輕量級 Web 應用框架。其 WSGI 工具箱採用 Werkzeug ,模板引擎則使用 Jinja2
。Flask使用 BSD 授權。
Flask也被稱為 「microframework」 ,因為它使用簡單的核心,用 extension
增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。
Tornado:非同步非阻塞IO的Python Web框架
Tornado是一種 Web 伺服器軟體的開源版本。Tornado 和主流Web 伺服器框架(包括大多數 Python
的框架)有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。
得利於其非阻塞的方式和對epoll的運用,Tornado 每秒可以處理數以千計的連接,因此 Tornado 是實時 Web 服務的一個 理想框架。
❽ Python的框架可以用來做什麼
Python的應用方向
1. 常規軟體開發
Python支持函數式編程和OOP面向對象編程,能夠承擔任何種類軟體的開發工作,因此常規的軟體開發、腳本編寫、網路編程等都屬於標配能力。
2. 科學計算
隨著NumPy, SciPy, Matplotlib, Enthought librarys等眾多程序庫的開發,Python越來越適合於做科學計算、繪制高質量的2D和3D圖像。和科學計算領域最流行的商業軟體Matlab相比,Python是一門通用的程序設計語言,比Matlab所採用的腳本語言的應用范圍更廣泛,有更多的程序庫的支持。雖然Matlab中的許多高級功能和toolbox目前還是無法替代的,不過在日常的科研開發之中仍然有很多的工作是可以用Python代勞的。
3. 自動化運維
這幾乎是Python應用的自留地,作為運維工程師首選的編程語言,Python在自動化運維方面已經深入人心,比如Saltstack和Ansible都是大名鼎鼎的自動化平台。
4. 雲計算
開源雲計算解決方案OpenStack就是基於Python開發的,搞雲計算的同學都懂的。
5. WEB開發
基於Python的Web開發框架不要太多,比如耳熟能詳的Django,還有Tornado,Flask。其中的Python+Django架構,應用范圍非常廣,開發速度非常快,學習門檻也很低,能夠幫助你快速的搭建起可用的WEB服務。
6. 網路爬蟲
也稱網路蜘蛛,是大數據行業獲取數據的核心工具。沒有網路爬蟲自動地、不分晝夜地、高智能地在互聯網上爬取免費的數據,那些大數據相關的公司恐怕要少四分之三。能夠編寫網路爬蟲的編程語言有不少,但Python絕對是其中的主流之一,其Scripy爬蟲框架應用非常廣泛。
7. 數據分析
在大量數據的基礎上,結合科學計算、機器學習等技術,對數據進行清洗、去重、規格化和針對性的分析是大數據行業的基石。Python是數據分析的主流語言之一。
8. 人工智慧
Python在人工智慧大范疇領域內的機器學習、神經網路、深度學習等方面都是主流的編程語言,得到廣泛的支持和應用。
當然,除了以上的主流和前沿領域,Python還在其他傳統或特殊行業起著重要的作用。
❾ 如何開發一個Python web框架
首先你需要知道一個Web應用基本的請求處理流程。以最簡單最原始的動態網頁為例,你點擊鏈接(GET),提交表單(POST),就是與伺服器端建立了連接之後發送了一個HTTP請求(RFC2616 5.1節,之後都以HTTP 1.1為例),裡面至少有方法(動詞,就是GET啦POST什麼的,詳見RFC2616第9節),地址(URL),HTTP版本,還可能帶上Cookie(會話的一般實現機制),緩存相關的信息(RFC2616 13節),User-Agent串等等一堆信息。對於POST請求我們還有表單內容作為請求實體(RFC2616 7.2節),裡面是你填寫的表單內容。
於是我們有了一些關於請求的數據,不過現在一般來講這些數據還在前端伺服器(反向代理,比如nginx,暫且忽略掉負載均衡,反正是透明的,也不考慮裸WSGI容器直接扛請求的情況)的手上,還沒有傳進後端語言(這里是Python)。我們就針對每一種語言都有特定的機制,用來將HTTP的請求信息映射到相應的編程語言范疇,叫做Web伺服器界面(Web server interface),通用如CGI/FCGI/SCGI,特定於某一語言如WSGI/PSGI/Rack/...,特定於某一操作系統如ISAPI(這貨還活著?),一些已經不再使用的就不提了。總之在Python世界裡這就是WSGI(PEP 3333, Web Server Gateway Interface),它就定義了Python語言與Web伺服器之間的界面。在WSGI里,
請求的處理過程被映射為對應用callable的調用(application(environ, start_response),知乎不支持inline代碼塊?);
請求信息被映射到environ字典中的相應鍵值,比如請求方法被映射到environ['REQUEST_METHOD'],請求的「相對路徑」被映射到environ['PATH_INFO'](過度簡化;暫且不提WSGI應用掛載點,框架層一般也不用關心這個,掛載WSGI應用一般是WSGI容器如gunicorn、uWSGI之類組件的工作);
發送響應頭的動作被映射到調用start_response(status, response_headers)(不考慮可選的第三個參數異常信息);
返回響應數據被映射到application返回iterable的動作。
於是響應便從Python返回到Web伺服器,再被發送回瀏覽器,瀏覽器將響應內容渲染,一個請求就完成啦。
有了這樣的感性認識,那麼我們作為Python Web開發框架的作者,要做的事情就是在WSGI規范的基礎之上,提供盡可能便捷的開發手段和盡可能低的框架開銷,也即我們的代碼將要工作在WSGI與業務邏輯的中間層。架構上,Web開發框架或多或少都遵循MVC的設計模式(Django管它叫MTV,其實差不多)。同時,由於框架位於中間件的位置,加上其鼓勵模塊化與代碼復用的性質,自然需要為常見的HTTP操作提供抽象。這里就可以展開一些話題:
請求路徑到view/controller的映射,請求參數的解析(routing,也叫路由)。
正則匹配的方案,比如Django內置了一個簡單的正則表達式解析組件,能解析一般常見語法的正則表達式,把capturing groups解析成位置參數,named capturing groups解析成關鍵字參數。
也有DSL的方案,比如Werkzeug的路由組件。
請求實體的處理。表單解析,配合Web伺服器進行上傳文件處理。
正常的urlencoded表單,JSON表單,text/plain數據,multi-part表單
multi-part附件,附件操作API
大文件上傳(這個一般會被前端伺服器保存在磁碟上的臨時文件里,比方說nginx就是這么實現的)。
會話。HTTP是無狀態(stateless)的,這個特點非常重要。如果沒有會話,你連續做幾個請求,卻沒有手段證明你們是同一個人/同一台機器(你完全可能是代理伺服器)。
存儲會話數據的會話後端(內存數據結構?文件?RDBMS?Redis?Memcache?)
安全機制(HMAC什麼的,可以參考beaker的secure cookie實現)
請求處理流程中的會話中間件(從Cookie中提取會話,從query string中提取會話,從自定義頭中提取會話,等等)
View/Controller界面。發揮你的創造力,用上你的工程經驗。
Function-based or Class-based views? 參考:Django, Bottle, web.py, Tornado等一票框架的做法
框架的可選機制與服務如何暴露,
裝飾器?(比如@login_required 這種額外要求)
回調?(能想到的只有Tornado和Twisted這種非同步框架做事情的方式,還有整個JS生態系統都是回調(不考慮Promise什麼的)的思路)
傳入應用(業務邏輯)層的數據結構如何設計?(HttpRequest等價物,名字可能記不清了)
響應數據結構如何設計?(HttpResponse等價物,同上)
資料庫操作封裝。Web應用基本都是數據為中心,這個組件非常有必要,也是撰寫可復用代碼必須的一環,畢竟光是框架抽象了,資料庫操作還是裸SQL什麼的,到時候生產環境一換(比如MySQL變pgsql)還不是傻眼。
關系型資料庫。一站式解決方案參考:Django ORM、SQLAlchemy;輕量級解決方案參考各資料庫Python綁定。
非關系資料庫。各資料庫Python綁定(pymongo, riak, redis-py之類),這個沒什麼可替代方案了,因為本來各種NoSQL庫都是適應某一特殊需求設計的,沒什麼互相替換的必要,那意味著重新進行技術選型。
未完待續
接下來的內容:
主要響應AJAX/API請求的框架設計思路
Python下實時Web框架思路
框架設計哲學
框架性能分析方法
本人才疏學淺,大項目沒做過,小項目也沒怎麼起飛過,請各位閱讀我的觀點時務必留心。讀到最後非常感謝。
❿ Python能做什麼,能夠開發什麼項目
Python是一種計算機程序設計語言。是一種面向對象的動態類型語言,最初被設計用於編寫自動化腳本(shell),隨著版本的不斷更新和語言新功能的添加,越來越多被用於獨立的、大型項目的開發。
Python是一種解釋型腳本語言,可以應用於Web 和 Internet開發、科學計算和統計、人工智慧、教育、桌面界面開發、軟體開發、後端開發這些領域。
Python的應用
1、系統編程
提供API(Application Programming Interface應用程序編程介面),能方便進行系統維護和管理,Linux下標志性語言之一,是很多系統管理員理想的編程工具。
2、圖形處理
有PIL、Tkinter等圖形庫支持,能方便進行圖形處理。
3、數學處理
NumPy擴展提供大量與許多標准數學庫的介面。
4、文本處理
python提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,許多程序員利用python進行XML程序的開發。
5、資料庫編程
程序員可通過遵循Python DB-API(資料庫應用程序編程介面)規范的模塊與Microsoft SQL Server,Oracle,Sybase,DB2,MySQL、SQLite等資料庫通信。python自帶有一個Gadfly模塊,提供了一個完整的SQL環境。
6、網路編程
提供豐富的模塊支持sockets編程,能方便快速地開發分布式應用程序。很多大規模軟體開發計劃例如Zope,Mnet 及BitTorrent. Google都在廣泛地使用它。
7、Web編程
應用的開發語言,支持最新的XML技術。
8、多媒體應用
Python的PyOpenGL模塊封裝了「OpenGL應用程序編程介面」,能進行二維和三維圖像處理。PyGame模塊可用於編寫游戲軟體。
9、pymo引擎
PYMO全稱為python memories off,是一款運行於Symbian S60V3,Symbian3,S60V5, Symbian3, Android系統上的AVG游戲引擎。因其基於python2.0平台開發,並且適用於創建秋之回憶(memories off)風格的AVG游戲,故命名為PYMO。
10、黑客編程
python有一個hack的庫,內置了你熟悉的或不熟悉的函數,但是缺少成就感。