淺談Python框架,初學者的不容錯過的幾個重點,你知道嗎?
框架讓開發更輕鬆
今天,有著大量的Python框架,它們可以讓web應用的開發更輕鬆。這些框架把不同的模塊集成在一起,讓你更快的構架程序,而不用關注一些細節(例如socket和協議),框架提供了需要的所有功能。
作為分成兩部分的系列文章的第一部分,我們會介紹一些最流行的Python框架。雖然大部分現代的web框架都運行在服務端,也有一些框架開始嘗試與客戶端代碼結合,可以在客戶端運行(例如Skulpt和Trinket)。Python框架通常分為全棧框架和非全棧框架。全棧框架設計從用戶體驗到資料庫的所有技術,非全棧框架則並不包含整個開發的全部技術。
此外還有一種微框架,也屬於非全棧框架,但是更輕量級。有的情況下,微框架是比較適合的,有時又適合使用全棧框架。在文章的第二部分我們會對全棧框架和微框架做一個比較。
一、Python名氣最大的框架:Django
在學習到python基礎和python進階時,一般不會使用到框架。但初學Python時,你一定聽到過Django,這兩者就好像是一對好朋友。
Django它是個開放源代碼的Web應用框架,由Python寫成的Django應該是最出名的Python框架之一。GAE還有Erlang都和python密切相關。Django是給人的感覺是高大尚,它十分出色的是其全自動化的管理後台:只需要使用起ORM做簡單的對象定義,就能自動生成資料庫結構,以及全功能的管理後台。
二、用Python編寫的小巧輕量級的Web應用框架:Flask
Flask也是一個Web應用框架,不同於Django它是輕量級Web應用框架。基於Werkzeug WSGI工具箱和Jinja2 模板引擎。Flask也被稱為「microframework」,因為它使用簡單的核心,用extension增加其他功能。Flask沒有默認使用的資料庫、窗體驗證工具。 但是Flask是可以擴增的,你可以使用可以用Flask-extension增加前邊沒有的一些功能。
三、實時Web服務的理想框架:Tornado非同步非阻塞IO的Python Web框架
Tornado它的全稱是Torado Web Server,(小編企鵝,有什麼不懂的可以加下:二二五三三四八六八六)僅僅從它的名字上我們就可以知道它可以用作Web伺服器,但同時它也是一個Python Web的開發框架。Tornado 和現在的主流 Web 伺服器框架和大多數Python框架有著明顯的區別:它是非阻塞式伺服器,而且速度相當快。也是比較常被使用的Python開源框架之一。
四、web2py是一個開源框架,允許開發者快速創建動態互動式的網站
它的設計目標是消除拖慢開發的大量重複編程任務,比如創建基本的表格。它在最初是作為工具開發的。隨後被Django和Ruby on Rails模仿,Ruby on Rails是個Ruby的框架。同TurboGears一樣,它使用MVC架構。
web2py的一些優點包括:
容易使用——作為一個魯棒的全棧式框架,它無需其他依賴就可以工作,容易學習和部署,安裝也無需任何配置文件,一旦下載完成,安裝完畢,就可以用了。開發者會獲得一個資料庫,一個基於web的IDE,web伺服器以及一個有多個核心對象組成的強大API。
安全性出色——Web2py的模板語言減少了黑客使用跨站腳本的危險,抽象層在創建表單時有表單域有效性檢查,避免SQL注入,也阻止了跨站請求偽造攻擊(csrf攻擊)。會話被存儲在伺服器上,阻止壞的執行者把瀏覽器cookie弄亂,並且每個密碼都是哈希後存儲的。
web2py的一些缺點包括:
在常規基礎上使用管理的介面不太容易
管理的介面沒有許可權
沒有內建的單元測試支持
開發速度迅速,所有的函數都有預設行為,表單時自動生成的,高層次的小部件和應用網格都是內建的。
TAG:Python |