從事python后端需要學什么技術?
由于Python的簡潔 易讀 強大 高效 現(xiàn)在Python應用在文件處理、網(wǎng)絡編程、數(shù)據(jù)庫編程、游戲、Web開發(fā)、數(shù)據(jù)分析、機器學習等各個領域。
就Web開發(fā)而言,為了提高開發(fā)效率,應運而生了很多后端開發(fā)框架,如Django、Flask、Tornado、Web2py等。
框架很多,根據(jù)業(yè)務需求、選擇適合的框架。
1、Django
最早接觸Django,在我心中的形象是:Web框架界的變形金剛
Django的MVT架構、自帶ORM、強大的Admin后臺管理、自帶數(shù)據(jù)庫、還自帶開發(fā)測試用的服務器、不得不說服務周到。
如此大而全,重量級的Django給開發(fā)者提供了超高的開發(fā)效率。
淌著Python血液
MVT三大輪子 連接瀏覽器 數(shù)據(jù)庫開跑
一身裝備 可變形 可擴展
多領域 跨平臺 協(xié)調作戰(zhàn)
自我測試 自我管理 自我保護
友好 開放 國際化
裝備很多:用戶認證 緩存 日志 郵件 組織 分頁 消息 序列化 會話 網(wǎng)站地圖 靜態(tài)文件處理 數(shù)據(jù)驗證Django支持第三方擴展:比如:富文本編輯器 緩存 全文檢索 celery等
Django項目布署 用nginx做靜態(tài)資源代理、負載均衡 可以提高高并發(fā)能力。
一些Web項目開發(fā) 無論用戶量、服務群體、上來總談高并發(fā)。沒用戶 天天愁高并發(fā)問題 還沒解決也許項目已經黃了。
項目有了、業(yè)務有了、用戶有了、性能優(yōu)化、高并發(fā)順勢解決嘛。
當然一些大型網(wǎng)站,在高性能的要求下,框架的各個部分往往都需要自己定制,這樣用Django也就沒有太大優(yōu)勢。
2、Falsk
相較于Django ,F(xiàn)alsk屬于輕量級Web框架,也稱‘microframework’。
Flask一個簡單的核心,基于Werkzeug WSGI工具箱和Jinja2 模板引擎。其他功能開發(fā)者根據(jù)業(yè)務需求 與喜好 添加。
如此 Falsk 自由、靈活、可擴展性很強。很適用于開發(fā)小型應用、開發(fā)大型網(wǎng)站也沒有壓力,自己設計架構、選擇合適第三方擴展,各方面性能完全不輸Django。
常用拓展包:wtf、sqlalchemy、login、script、migrate、mail
3、Tornado
傳說中實現(xiàn)高并發(fā)、高性能的框架。Tornado的全稱是Torado Web Server,可用作Web服務器,同時也是一個Python Web的開發(fā)框架。
Tornado兩大核心模塊:
iostream :對非阻塞式的 socket 的簡單封裝,用來處理 socket 的異步讀寫ioloop :核心的 I/O 循環(huán)。基于 epoll,可以高效的響應網(wǎng)絡事其作為Web框架的主要模塊web:包含了 Tornado 的大多數(shù)重要的功能escape :XHTML, JSON, URL 的編碼/解碼方法template :基于 Python 的 web 模板系統(tǒng)httpserver : 非阻塞 HTTP serverhttpclient : 異步 HTTP client 用來和web 及 httpserver 協(xié)同工作auth :第三方認證的實現(xiàn)locale:針對本地化和翻譯的支持等等Tornado 走的少而精的路子,除了Web開發(fā)需要的基本模塊,剩下的則都需要開發(fā)者自己擴展。比如需要ORM支持,那自己來擴展Python 后端的web框架很多,在于精通。選擇適合自己的,開始搞起來。我做項目用的多的還是Django,不自己重復造車輪子嘛。