1. python為什麼不適合web開發
python不適合web開發的原因:
1、性能堪憂。
寫個http server僅僅就輸出hello world,單機跑出一千的qps都夠嗆。而用netty,golang,nodejs隨便就上萬了。
而對於互聯網的web應用來說,性能就是生命線。qps上不去,用戶就會覺得卡頓,卡頓了還談個屁的用戶體驗。
當然也有一些方案可以增加性能,比如用非同步的tornado。但玩過之後發現稍好,性能依然比上面提到的技術低一個檔次。還有很偏門bjoern wsgi可以極大的提高http的性能,但這高出來的部分,是因為bjoern是用c寫的。但,一旦運行到用python寫的業務代碼時,又慢得跟截肢了似的。
性能低應該有兩方面的原因,
a.因為python的默認實現是單線程,並且很多重要的模塊就不支持多線程。所以利用多核較為困難。當然也不是沒有辦法,比如用多進程來利用多核。但多進程用起來還是不那麼順手。
b.python的實現性能不夠好吧。JavaScript當初也慢的可以卡出翔,後來google出手,搞出V8引擎,立即JavaScript快如閃電。最早的Java也是慢的跟蝸牛似的,後來SUN找牛人搞出了Hotspot虛擬機後,Java的性能立即發生質的飛躍。PHP最近都有極大的性能提升。但Python就是一直這么慢
2、Python的跨平台開發比較麻煩。
Python下要想實現跨平台開發非常麻煩。
一些擴展包在windows下安裝極其麻煩,比如PIL這個著名的圖像處理包,在windows上要找到這個安裝包都不容易,而且這個包已經不維護了,被一個叫pillow的包接替,但氣憤的是pillow這個包和PIL居然不是100%兼容的,還需要一些小改動。
另外的,有的包根本就不提供windows版,比如kyotocabinet,一個著名的的kv存儲引擎。這讓人非常頭疼。
現在團隊基本所有的人都是用windows開發,但程序部署卻是在linux上。
最終大家解決問題的辦法是在windows上裝個linux虛擬機,在虛擬的linux的上開發,這樣就可以保持伺服器和開發環境一致了。但這樣也是夠麻煩的,性能嚴重打折,虛擬機和物理機之間切換也極度麻煩。
更多Python知識請關注Python視頻教程欄目。
2. 安裝好Python後,怎麼在瀏覽器輸出,就像PHP安裝好環境後輸出localhost一樣可以在瀏覽器顯示效果
Python可以作為web開發語言來進行使用,但是它不是專門用來做web開發來使用的,所以你無法直接安裝以後就能在瀏覽器當中輸出。當然既然可以用來做web語言開發,也就是或它在進行一定配置以後可以在瀏覽器當中進行輸出。
我們先編寫hello.py,實現Web應用程序的WSGI處理函數:
#hello.py
defapplication(environ,start_response):
start_response('200OK',[('Content-Type','text/html')])
return'<h1>Hello,web!</h1>'
然後,再編寫一個server.py,負責啟動WSGI伺服器,載入application()函數:
#server.py
#從wsgiref模塊導入:
fromwsgiref.simple_serverimportmake_server
#導入我們自己編寫的application函數:
fromhelloimportapplication
#創建一個伺服器,IP地址為空,埠是8000,處理函數是application:
httpd=make_server('',8000,application)
print"ServingHTTPonport8000..."
#開始監聽HTTP請求:
httpd.serve_forever()
確保以上兩個文件在同一個目錄下,然後在命令行輸入python server.py來啟動WSGI伺服器
啟動成功後,打開瀏覽器,輸入http://localhost:8000/,就可以看到結果了:
3. python web為什麼不火
Python語言發展火熱,但為什麼Python Web發展卻不溫不火,主要歸根於以下幾個原因:
1、相比Java而言,熟練應用Python語言的開發的人員較少
2、缺乏真正的多處理器支持(偽線程)
多重處理是編寫應用程序的重要部分。編寫代碼時,Python可能會產生某些限制。
3、速度限制,Python是一種解釋型腳本語言,由於它使用的翻譯代碼方法不同,它比許多編譯後的語言相對要慢。
4、對移動開發,沒有優勢
5、對於內存密集型任務不理想,Python有著相當高的內存消耗,不方便用於佔用大量內存的任務。
6、設計限制,Python是動態類型的,如果您的設計中載入了元素,則可能會使程序停頓並妨礙順利運行。
4. Python有哪些不錯的web開發框架常用的有哪些
Python作為一門應用非常廣泛的編程語言,本身針對Web開發提供了非常多的框架,既有重量級的,也有輕量級的,下面我簡單介紹幾個比較常見的PythonWeb開發框架,感興趣的朋友可以自己嘗試一下:
Django
這是Python一個非常成熟穩重的Web框架,基於MVC模式(又說MTV模式,本質其實一樣),優點是文檔完善、資料豐富、功能要素齊全,幾乎你所能想到的要點,Django都已實現或集成,只需要簡單開發和配置,就可快速搭建一個Web系統,缺點也顯而易見,大包大攬,追求極致和完善,有些臃腫,不如Falsk等框架輕巧靈活,學習和使用起來也具有一定難度,但對於大型項目開發來說,是一個很不錯的選擇:
Flask
這是Python一個非常輕巧靈活的Web框架,可擴展性和可定製性都非常高,WSGI工具箱採用Werkzeug,模板引擎則使用JinJa2,與Django相比,比較輕便,也容易學習和掌握,如果你初學PythonWeb開發的話,可以學習一下這個框架,非常不錯,對於中小型網站開發來說,也是一個不錯的選擇,缺點就是模塊擴展相對較少(社區還在開發中),有許多功能可能需要自己實現:
測試代碼如下,非常簡單,只需幾行代碼就可快速搭建一個Web系統,運行啟動程序,就可直接在瀏覽器中看到預期效果,悔拍非常容易:
Tornado
這也是一個輕量級的PythonWeb開發框架,與其他Web框架相比,最明顯的區別就是非阻塞式的,運行速度非常快,每秒可以處理數以千計的連接,因此可以看做是一個實時的Web框架,如果你追求實時性能和效率的話,可以學習一下這個框架,非常不錯,只不過有許多功能也需要自己親自實現:
測試代碼如下,也非常簡單,只需簡單幾行代碼就可快速構建一個Web系統,運行啟動程序,就可在瀏覽器對應端碧則羨口中看到效果:
目前,就介紹這3個不錯的PythonWeb開發框架吧,對於大部分Web開盯陵發來說,完全夠用了,當然,還有許多其他框架,像Pylons,Bottle等也有非常不錯,根據實際項目需求,選擇適合的一個框架就行,網上也有相關資料和教程,介紹的非常詳細,感興趣的話,可以搜一下,希望以上分享的內容能對你有所幫助吧,也歡迎大家評論、留言進行補充。