python項目框架
Ⅰ python的代表性Web框架有哪些
1. Django
Django是一個開源的Web應用框架,由Python寫成,支持許多資料庫引擎,可以讓Web開發變得迅速和可擴展,並會不斷的版本更新以匹配Python最新版本,如果是新手程序員,可以從這個框架入手。
2. CherryPy
CherryPy是一種用於Python的、簡單而非常有用的Web框架,其主要作用是以盡可能少的操作將Web伺服器與Python代碼連接,其功能包括內置的分析功能、靈活的插件系統以及一次運行多個HTTP伺服器的功能,可與運行在最新版本的Python、Jython、Android上。
3. Web2py
web2py 是一個為Python語言提供的全功能Web應用框架,旨在敏捷快速的開發Web應用,具有快速、安全以及可移植的資料庫驅動的應用,兼容
Google App Engine。
4. TurboGears
TurboGears可以快速實現Web應用程序開發,富含豐富的特殊性能,可以解決更多的框架領域問題,從簡單到復雜的項目都可以開發,並具有實時的多資料庫支持和靈活的ORM,簡單的文檔和最小的設置使它成為一個理想的使用框架。
5. Pylons
Pylons是一個開源的Web應用框架,使用Python語言編寫,它對WSGI標准進行了擴展應用,提升了重用性且將功能分割到獨立的模塊中,而且提供了在線調試器,易於錯誤跟蹤!
Ⅱ python為什麼這么多框架
Python的五個框架:
Django
Flask是一個微框架,最適合簡單的小項目。該框架基於Jinja 2和Werkzeug開發。這個框架的主要目的是開發一個強大的web應用程序庫。
特點:
· 包含開發調試器和伺服器
· 有豐富的文檔
· 支持安全cookie
· 基於unicode
· 單元測試集成支持
Ⅲ python web框架有哪些
對初學者來說,循序漸進是最重要的,我推薦學習 Flask(Welcome | Flask (A Python Microframework))
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。
Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm + Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。
BTW:果殼網基於 Flask 開發的。
另外也簡單介紹下其他框架:
1. Django。如樓上所說,是一個全能型框架。目前 Django 的使用面還是很廣的,有學習的價值,但是不建議初學者學習,因為要學習的東西太多了,一下子難以吸收會失去興趣。當然,Django 的目的是為了讓開發者能夠 快速 地開發一個網站,它提供了很多模塊,其中我最喜歡的就是 admin 模塊,http://your.site.com/admin 就進入了網站的後台(內置的哦~)方便地對數據進行操作,等等。。。。因此,如果對 Django 熟悉的話,papapa 一下子就寫好一個網站的原型了。
2. Tornado。傳說中性能高高的框架。Tornado 是一個很好的框架,支持非同步處理的功能,這是它的特點,其他框架不支持。另外一點是,Tornado 的設計似乎更注重 RESTful URL。但 Tornado 提供了網站基本需要使用的模塊外,剩下的則需要開發者自己進行擴展。例如資料庫操作,雖然內置了一個 database 的模塊(後來獨立出去了,現在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速開發起來還是挺吃力的。如果需要 ORM 支持的話,還需要自己寫一層將 SQLAlchemy 和 Tornado 聯系起來,而且這里還有一個坑。
BTW:知乎就是基礎 Tornado 開發的。
3. Bottle。Bottle 和 Flask 都屬於輕量級的 Web 框架。但是 Bottle 似乎落寞了。我覺得跟他的 API 設計有關系。個人認為 Bottle 使用起來不那麼順手,因此也用得少。這里不做太多介紹。
4. web.py。也是很輕的一個框架,使用不多,也不做介紹。
5. web2py。我看樓上都沒有對這個框架做介紹。這個框架是 Google 在 web.py 基礎上二次開發而來的,兼容 GAE 。性能據說很高,曾經用他來做自己的主頁,感覺也還不錯。缺點同樣是對擴展支持不太好,需要自己進行擴展。
6. Quixote。著名的 豆瓣 就是基於 Quixote 開發的。跟上面幾個框架不同,Quixote 的路由會有些特別。另外 Quixote 的性能據說也好。
Ⅳ 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 Web開發比較流行的框架都有什麼
目前Python流行的Web框架包括:Django、Flask和Tornado。框架把構建Web應用的通用的代碼進行了封裝,把相應的模塊組織起來,使用Web框架可以更輕松、快捷的創建web應用,不用去關注一些底層細節。
1、Django框架
Django是基於Python的免費和開放源代碼Web框架,它遵循模型-模板-視圖(MTV)體系結構模式。它由Django Software Foundation(DSF)維護,這是一個由非營利組織成立的獨立組織。Django對基礎的代碼進行了封裝並提供相應的 API,開發者在使用框架是直接調用封裝好的 API 可以省去很多代碼編寫,從而提高工作效率和開發速度。
Django的設計理念如下:
①松耦合——Django的目標是使堆棧中的每個元素彼此獨立。
②更少的編碼——更少的代碼,因此可以快速開發。
③不重復自己(DRY)——一切都應該只在一個地方開發,而不是一次又一次地重復。
④快速開發——Django的理念是盡一切可能促進超快速開發。
⑤簡潔的設計——Django嚴格按照自己的代碼維護簡潔的設計,並易於遵循最佳的Web開發實踐。
Django的一些優勢如下:
①對象關系映射(ORM)支持——Django在數據模型和資料庫引擎之間建立了橋梁,並支持包括MySQL,Oracle,Postgres等在內的大量資料庫系統。
②多語言支持——Django通過其內置的國際化系統支持多語言網站。因此,您可以開發支持多種語言的網站。
③框架支持——Django內置了對Ajax,RSS,緩存和其他各種框架的支持。
④GUI——Django為管理活動提供了一個很好的即用型用戶界面。
⑤開發環境——Django帶有輕量級的Web伺服器,以促進端到端應用程序的開發和測試。
⑥Django是Python Web框架。和大多數現代框架一樣,Django支持MVC模式。
2、Flask框架
Flask 是 Python 編寫的一種輕量級 ( 微 ) 的 Web 開發框架,只提供 Web 框架的核心功能,較其他類型的框架更為的自由、靈活、更加適合高度定製化的 Web 項目。Flask 在功能上面沒有欠缺,只不過更多的選擇及功能的實現交給了開發者去完成,因此 Flask 對開發人員的水平有了一定的要求。
3、Tornado框架
在之前的學習過程當中,學習過了 Flask 和 Django 這兩個 Python Web 框架,現在來認識一個更加復雜但是高效的 Python Web 框架 : Tornado。
Tornado 是 Python 編寫的一個強大的可擴展的 Web 伺服器,在處理高網路流量的時候表現的足夠強大,但是在創建的時候,和 Flask 類似又足夠輕量,並且可以被用到大量的工具當中。相對於其他的框架,
Tornado 有如下特點:
1、完整的 Web 開發框架,和 Django,Flask 一樣,Tornado 也提供了路由映射,request 上下文,基於模板的頁面渲染這些功能。
2、同樣是一個高效的網路庫,性能可以和 Python 的 Twisted,Gevent 等底層框架媲美,同時提供了非同步IO, 超時事件處理,功能,這樣 twisted 除了做 Web 之外還可以做爬蟲,物聯網關或者游戲伺服器等後台應用。
3、提供了高效的 HTTPClient, 除了伺服器端框架,還提供了基於非同步框架的 HTTP 客戶端
4、提供了高效的內部伺服器,Tornado 的內部伺服器可以直接用於生產環境
5、完備的 WebSocket 支持
關於Python的基礎問題可以看下這個網頁的視頻教程,網頁鏈接,希望我的回答能幫到你。
Ⅵ python爬蟲用什麼框架
python爬蟲框架概述
爬蟲框架中比較好用的是 Scrapy 和PySpider。pyspider上手更簡單,操作更加簡便,因為它增加了 WEB 界面,寫爬蟲迅速,集成了phantomjs,可以用來抓取js渲染的頁面。Scrapy自定義程度高,比 PySpider更底層一些,適合學習研究,需要學習的相關知識多,不過自己拿來研究分布式和多線程等等是非常合適的。
PySpider
PySpider是binux做的一個爬蟲架構的開源化實現。主要的功能需求是:
抓取、更新調度多站點的特定的頁面
需要對頁面進行結構化信息提取
靈活可擴展,穩定可監控
pyspider的設計基礎是:以python腳本驅動的抓取環模型爬蟲
通過python腳本進行結構化信息的提取,follow鏈接調度抓取控制,實現最大的靈活性
通過web化的腳本編寫、調試環境。web展現調度狀態
抓取環模型成熟穩定,模塊間相互獨立,通過消息隊列連接,從單進程到多機分布式靈活拓展
pyspider的架構主要分為 scheler(調度器), fetcher(抓取器), processor(腳本執行):
各個組件間使用消息隊列連接,除了scheler是單點的,fetcher 和 processor 都是可以多實例分布式部署的。 scheler 負責整體的調度控制
任務由 scheler 發起調度,fetcher 抓取網頁內容, processor 執行預先編寫的python腳本,輸出結果或產生新的提鏈任務(發往 scheler),形成閉環。
每個腳本可以靈活使用各種python庫對頁面進行解析,使用框架API控制下一步抓取動作,通過設置回調控制解析動作。
Scrapy
Scrapy是一個為了爬取網站數據,提取結構性數據而編寫的應用框架。 可以應用在包括數據挖掘,信息處理或存儲歷史數據等一系列的程序中。
其最初是為了頁面抓取 (更確切來說, 網路抓取 )所設計的, 也可以應用在獲取API所返回的數據(例如 Amazon Associates Web Services ) 或者通用的網路爬蟲。Scrapy用途廣泛,可以用於數據挖掘、監測和自動化測試
Scrapy主要包括了以下組件:
引擎(Scrapy): 用來處理整個系統的數據流處理, 觸發事務(框架核心)
調度器(Scheler): 用來接受引擎發過來的請求, 壓入隊列中, 並在引擎再次請求的時候返回. 可以想像成一個URL(抓取網頁的網址或者說是鏈接)的優先隊列, 由它來決定下一個要抓取的網址是什麼, 同時去除重復的網址
下載器(Downloader): 用於下載網頁內容, 並將網頁內容返回給蜘蛛(Scrapy下載器是建立在twisted這個高效的非同步模型上的)
爬蟲(Spiders): 爬蟲是主要幹活的, 用於從特定的網頁中提取自己需要的信息, 即所謂的實體(Item)。用戶也可以從中提取出鏈接,讓Scrapy繼續抓取下一個頁面
項目管道(Pipeline): 負責處理爬蟲從網頁中抽取的實體,主要的功能是持久化實體、驗證實體的有效性、清除不需要的信息。當頁面被爬蟲解析後,將被發送到項目管道,並經過幾個特定的次序處理數據。
下載器中間件(Downloader Middlewares): 位於Scrapy引擎和下載器之間的框架,主要是處理Scrapy引擎與下載器之間的請求及響應。
爬蟲中間件(Spider Middlewares): 介於Scrapy引擎和爬蟲之間的框架,主要工作是處理蜘蛛的響應輸入和請求輸出。
調度中間件(Scheler Middewares): 介於Scrapy引擎和調度之間的中間件,從Scrapy引擎發送到調度的請求和響應。
Scrapy運行流程大概如下:
首先,引擎從調度器中取出一個鏈接(URL)用於接下來的抓取
引擎把URL封裝成一個請求(Request)傳給下載器,下載器把資源下載下來,並封裝成應答包(Response)
然後,爬蟲解析Response
若是解析出實體(Item),則交給實體管道進行進一步的處理。
若是解析出的是鏈接(URL),則把URL交給Scheler等待抓取
Ⅶ 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幾種主流框架比較
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一般是學什麼框架
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框架需要學習
需要學習的python框架有:1、Django,它是一個高級的python web框架,以快速開發和使用簡潔的設計聞名;2、CherryPy,它是歷史最久的框架之一,運行非常穩定且快速;3、Web2Py,它是一個開源、免費的web框架。
常用的五大python框架:
(推薦教程:Python入門教程)
1、Django
Django是一個高級的Python Web框架,以快速開發和實用簡潔的設計聞名。它由經驗豐富的開發人員構建,解決了Web開發的麻煩,因此用戶可以專注於編寫應用程序,而不需要擔心返工。並且它是開源和免費的。
特點:
安全系數高,能幫助開發者規避常見錯誤。
速度特別快,因為它的設計目的是使應用程序非常快地從概念階段過渡到最終階段。
擴展性好。
從21世紀初Django成為開源框架到現在,它一直是最佳的歸檔方式。
2、CherryPy
CherryPy是歷史最久的框架之一,運行非常穩定且快速。該框架允許開發人員構建web應用程序,和以Python為對象的應用程序開發過程類似,因而可在更短的時間內開發更小的源代碼。
從一開始,CherryPy就被證明是高效快速的,並被許多站點用於生產,無論是最簡單的站點,還是有高要求的站點。
特點:
可以在2.7+、3.5+、Jython、Android和PyPy上運行。
內置覆蓋、分析和測試支持。
容易快速運行多個HTTP伺服器(例如,在多個埠上)。
是為部署人員和開發人員提供的最強大的配置系統之一。
靈活的插件系統。
3、Web2Py
Web2Py是一個開源、免費的web框架,用於敏捷開發,其中包括資料庫驅動的web應用程序。它是用Python編寫的,並可用於python編程。它是個全堆棧框架,由開發人員構建功能齊全的web應用程序所需的所有必要組件組成。
特點:
能夠簡化復雜大型應用的開發
支持MVC體系結構
符合Ni配置和安裝要求
提供本地化和國際化支持
4、Bottle
Bottle是一個用於Python的簡單、輕量級、快速的Web伺服器網關介面(WSGI)微web框架。它是作為單個文件模塊分發的,除了Python標准庫之外沒有其他依賴項。它被設計成輕量級,允許快速有效地開發web應用程序。
特點:
5、Flask
Flask是一個微框架,最適合簡單的小項目。該框架基於Jinja 2和Werkzeug開發。這個框架的主要目的是開發一個強大的web應用程序庫。
特點:
包含開發調試器和伺服器
有豐富的文檔
支持安全cookie
基於unicode
單元測試集成支持