豆瓣python框架
㈠ python 在編程語言中是什麼地位為什麼很多大學不教 Python
python的地位很高,目前是世界第5大編程語言。。但我覺得大學不教python,其實是正確的。
Python在誕生之初,只是用來在Linux上給Perl和shell做銜接用的「膠水」,而今天已經成為了主流的編程語言,能獲得今天的地位,當然具備諸多優勢。。。比如數學運算相關的各種庫,爬蟲,等等。。。但這都不是導致Python流行的最根本原因。
有沒有比Python運算更強的語言?多得是
有沒有比Python爬蟲效率更高的語言?也不少
所以其實平日里隨口道來的種種優勢,並不是不可替代的。。這些優勢,很多語言都具備。就比如perl,erlang,Julia等語言,其實用來做運算或爬蟲比Python更強,但為什麼這些語言卻流行不起來?
說到底,Python成功的秘訣只有一條,其實就是在功能基本夠用的前提下,比其他語言簡單。而比Python簡單的語言,功能又不夠全面,比如Lua,Javascript,Ruby這些語言比Python更簡單,但往往只適合一兩個領域的工作,而無法面面俱到。
Python可以提供的這些功能,對於非專業程序員來講,已經顯得非常強大了。。但對於專業程序員來說,Python最大的作用,其實也只是用來「偷懶」而已。因為相比JAVA或C#這種工業級的編程語言來講,Python除了入門簡單之外,並無任何優勢可言。而Python的動態語言特性、不利於維護等缺點,成為了限制它邁向深層開發的重大缺陷。
而如果熟練掌握JAVA或C#中的任何一門,想利用閑暇之餘學習一下Python,看幾個案例便可以入門,幾乎不需要專門學習。
如果你並不以成為專業程序員做為目標,那麼以Python為主,是可以的。但若想靠編程養家糊口,靜態語言才是重中之重。
但如果是計算機專業的話,僅僅學Python,似乎就有點對不起「科班出身」的稱號了。。。。學生們花著昂貴的學費,消耗四年光陰,卻只學個Python,豈不是誤人子弟?
就像你若報考攝影專業,老師應該教你使用單反,而不是教你使用手機攝像頭。
㈡ 豆瓣為什麼用python
1.不同編程語言的運行效率雖然有不同,但是沒有你想像的那麼大的差異。
2.大型架構要想提高運行效率,關鍵在於提高伸縮性和吞吐量,而不是考慮單一程序的效率。高級的...
3.人家只是在應用層用某種語言,在大型架構中,這只是佔到程序的一部分,特別是瓶頸不在這里。
4.Python也有高性能優化的方案,比如二次編譯,JIT和runtime的優化
㈢ Python 有哪些好的 Web 框架
對初學者來說,循序漸進是最重要的,我推薦學習 Flask(Welcome | Flask (A Python Microframework))
Flask 很輕,花很少的成本就能夠開發一個簡單的網站。非常適合初學者學習。
Flask 框架學會以後,可以考慮學習插件的使用。例如使用 WTForm + Flask-WTForm 來驗證表單數據,用 SQLAlchemy + Flask-SQLAlchemy 來對你的資料庫進行控制。
BTW:果殼網基於 Flask 開發的。
另外也簡單介紹下其他框架:
1. Django。如樓上所說,是一個全能型框架。目前 Django 的使用面還是很廣的,有學習的價值,但是不建議初學者學習,因為要學習的東西太多了,一下子難以吸收會失去興趣。當然,Django 的目的是為了讓開發者能夠 快速 地開發一個網站,它提供了很多模塊,其中我最喜歡的就是 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 的性能據說也好。
發布於 2014-04-26
㈣ Python能做什麼能夠開發什麼項目
一般學習會Python可以往很多方向發展,比如說:
1、web應用開發:在國內,很多知名的網站都開始使用Python,比如說豆瓣、知乎,都是使用Python作為web開發基礎語言的,知乎整體框架也是基於Python語言的,因此web開發領域在國內發展是非常不錯的。YouTube國外的視頻網站,都使用Python開發的。
2、網路爬蟲:爬蟲算是Python應用比較多的一個場景吧,谷歌的蜘蛛就是用Python撰寫的,Requests
,這個庫是一個模擬HTTP請求的一個庫,相信學習過Python的人對於它都是比較熟悉的,抓住數據之後數據分析以及計算領域也是Python的應用領域,具有很大的作用。目前Python比較流行的網路爬蟲框架是功能非常強大的scrapy。
3、人工智慧、機器學習:隨著人工智慧的火爆,各種培訓班也開設了Python培訓的課程,尤其是深度學習,其工具框架大都提供了Python介面。Python在科學領域一直有著很好的作用,簡潔清晰的語法以及豐富的計算工具,受到了該領域開發者的喜歡。所以說Python簡單易學框架豐富,很多對於Python都是非常友好的。
4、數據分析:在大量數據的基礎上,結合科學計算、機器學習等技術,對數據進行清洗、去重、規格化和針對性的分析是大數據行業的基石。Python是數據分析的主流語言之一。
㈤ 學python可以做什麼
1WEB開發
在國內,豆瓣一開始就使用Python作為web開發基礎語言,知乎的整個架構也是基於Python語言,這使得web開發這塊在國內發展的很不錯。
盡管目前Python並不是做Web開發的首選,但一直都佔有不可忽視的一席。Python中有各類Web框架,無論是簡單而可以自由搭配的微框架還是全功能的大型MVC框架都一應俱全,這在需要敏捷開發的Web項目中也是十分具有優勢的。廣泛使用(或曾經廣泛使用)Python提供的大型Web服務包括知乎、豆瓣、Dropbox等網站。加之Python本身的「膠水」特性,很容易實現在需要大規模性能級計算時整合其它語言,同時保留Web開發時的輕便快捷。
除此之外,Python中還有大量「開箱即用」的模塊,用於與各種其它網站的對接等相關功能。如果希望開發個微信公眾號相關功能,wechat-sdk/weixin-python等包,能夠使你幾乎完全不用管文檔中提及的各種伺服器交互細節,專注於功能實現即能完成開發。
目前,國內的Python web開發主要有兩個技術棧:
(1)Django
Django是一個高級的敏捷web開發框架,如果學會了,擼一個網站很快。當然如果純粹比擼網站的速度,基於ruby的Ruby on rails顯然更快,但是Django有一個優勢就是性能優秀,更適合國內網站的應用場景。國外的著名圖片社區Pinterest早期也是基於Django開發的,承受了用戶快速增長的沖擊。所以說如果你想快速開發一個網站,還能兼顧APP客戶端的API調用需求,Django是可以信賴的。
(2)Flask
相對於Django,Flask則是一個輕量級的web框架,Flask的最大的優勢是性能優越,適合配合手機客戶端開發後台API服務。國內基於Flask的Restful API服務這快很火,也是需求最大的。知名的比如網路、網易、小米、陌陌等等很多公司都有基於Flask的應用部署。當然,如果你想做一個傳統的web網站,還是建議使用Django,Flask的優勢是後端、API,不適合構建全功能網站。
2網路爬蟲
網路爬蟲是Python比較常用的一個場景,國際上,google在早期大量地使用Python語言作為網路爬蟲的基礎,帶動了整個Python語言的應用發展。以前國內很多人用採集器搜刮網上的內容,現在用Python收集網上的信息比以前容易很多了。
Python在這個方面有許多工具上的積累,無論是用於模擬HTTP請求的Requests、用於HTML DOM解析的PyQuery/BeautifulSoup、用於自動化分布式爬取任務的Scrapy,還是用於最簡化資料庫訪問的各種ORM,都使得Python成為數據爬取的首選語言之一。特別是,爬取後的數據分析與計算是Python最為擅長的領域,非常容易整合。目前Python比較流行的網路爬蟲框架是功能非常強大的scrapy。
3人工智慧與機器學習
人工智慧是現在非常火的一個方向,AI熱潮讓Python語言的未來充滿了無限的潛力。現在釋放出來的幾個非常有影響力的AI框架,大多是Python的實現,為什麼呢?
因為Python足夠動態、具有足夠性能,這是AI技術所需要的技術特點。比如基於Python的深度學習庫、深度學習方向、機器學習方向、自然語言處理方向的一些網站基本都是通過Python來實現的。機器學習,尤其是現在火爆的深度學習,其工具框架大都提供了Python介面。Python在科學計算領域一直有著較好的聲譽,其簡潔清晰的語法以及豐富的計算工具,深受此領域開發者喜愛。
6桌面程序
Python也可以用於桌面軟體開發(如sublime text等),甚至移動端開發(參看kivy)。Python簡潔方便,各種工具包齊全的環境,能大幅度減少開發者的負擔。著名的UI框架QT有Python語言的實現版本PyQT。Python簡單易用的特性加上QT的優雅,可以很輕松的開發界面復雜的桌面程序,並且能輕松實現跨平台特性。
7多媒體應用
可以用Python裡面的PIL、Piddle、ReportLab 等模塊對圖象、聲音、視頻、動畫等進行處理,還可以用Python生成動態圖表和統計分析圖表。另外,還可以利用PyOpenGl模塊非常快速有效的編寫出三維場景。
㈥ 國內用ROR框架做的著名web網站的是不是不多,是不是國內的ROR社區環境不太好我只知道豆瓣是用python寫的
因為Twitter, Github兩個知名網站的使用ror也逐漸的出名起來。國內的iteye就是RoR開發的,還有http://ruby-china.org/。但是在國內,Ruby是小眾語言,所以RoR的社區也不大。
每種技術的社區里,都有些佈道者,他們會經常寫一些文字,展現某種技術的優越。那樣做,並非是為了體現自己「拽」,只是發表自己的見解而已,這種做法對社區和自己都是有益的。好的框架,都是集成了眾多「最佳實踐」的,把一些重復的工作自動化了,這是進步的體現。用RoR和Django,你可以敲幾句命令,就可以把一個網站的骨架搭起來,但是你想把這個骨架,開發成一個能解決實際問題,甚至能創造收益的產品,還是需要付出一番血和汗的。
至於「用 Ruby 做的成功商業網站少是什麼原因」,我找到了一個人的回答,我也比較贊同,現貼出來:
首先 Ruby(on Rails) 是後起之秀,所以「少」,是一個正常的現象。一個技術要成功,需要一定的時間來證明。
一個項目用成熟的技術如 Java 和 PHP 來做,碰到問題,可以較容易找到解決的方案,因為這方面別人早都碰過了,但用 Ruby 這樣的技術來做,就不一定。
另外還有一個整合問題,比如一些第三方類庫(比如支付),是用 Java 或 PHP 來做,用 Ruby 做的項目,不能夠直接集成它們。雖然這方面開發工作量不大,但仍讓一部分人生畏。
最後一個我認為較重要的因素就是:項目不採用 Ruby 來做,很多時候不是技術(比如技術太難或這樣的技術人員難找)的原因,更多是擔心責任和風險。
如果用 Java 或 PHP 這樣的技術來做項目,碰到問題或瓶頸,上級通常不會懷疑是開發語言選擇的問題,但如果是用 Ruby 來做,可能管理層第一時間就會懷疑你技術人員沒有選擇好技術,是該技術導致的問題,這時候責任人通常是有口難辯。
好幾年前那些用 Unix 的單位的技術主管寧願繼續選擇昂貴的 Unix,而不願意嘗試技術上已經成熟且更便宜的 Linux,一個重要原因就是怕出問題自己一身責任。當初的免費 Linux 跟現在開發效率更高的 Ruby(Rails),有點相似。
㈦ 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為什麼叫爬蟲
因為python的腳本特性,易於配置,對字元的處理也非常靈活,就像蟲子一樣靈活,故名爬蟲。
Python是完全面向對象的語言。函數、模塊、數字、字元串都是對象。並且完全支持繼承、重載、派生、多繼承,有益於增強源代碼的復用性。
Python支持重載運算符和動態類型。相對於Lisp這種傳統的函數式編程語言,Python對函數式設計只提供了有限的支持。有兩個標准庫(functools, itertools)提供了Haskell和Standard ML中久經考驗的函數式程序設計工具。
擴展資料
Python的設計目標之一是讓代碼具備高度的可閱讀性。它設計時盡量使用其它語言經常使用的標點符號和英文單字,讓代碼看起來整潔美觀。它不像其他的靜態語言如C、Pascal那樣需要重復書寫聲明語句,也不像它們的語法那樣經常有特殊情況和意外。
Python開發者有意讓違反了縮進規則的程序不能通過編譯,以此來強製程序員養成良好的編程習慣。
並且Python語言利用縮進表示語句塊的開始和退出(Off-side規則),而非使用花括弧或者某種關鍵字。增加縮進表示語句塊的開始,而減少縮進則表示語句塊的退出。縮進成為了語法的一部分。
例如if語句:python3。