1. 程式人生 > >2018年最好用的5個python網站開發框架

2018年最好用的5個python網站開發框架

python作為解釋型指令碼語言,是一種通用的程式語言。由於python社群擁有大量的庫檔案、框架和其他的一些實用工具,我們可以用python完成各種各樣的任務。另外,由於python的程式碼構成和結構就像英語句子一樣自然,這種語言的學習曲線也比較平緩。因此和其他語言相比,好多網站開發人員更喜歡用python來確保程式碼的可讀性。

然而,python一開始被設計出來的時候,並沒有特別傾向於網站開發。正是由於這個原因,我們在使用python做網站時,就不得不借助數量繁多的web開發框架。在這篇文章裡,我們聊一聊2018年將會流行的web框架。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

最實用的框架列表:我們總結的5個

通過大量的試驗總結,我們整理了5個最實用、最好用的框架。下面讓我們細細道來:

Django

排位第一的當然是Django。事實上,正是由於Django的存在,成百上千的網站專案才能成功,python才能成為網站開發中最常用的語言。包括 Instagram, Mozilla Firefox, National Geographic, Pinterest, NASA等在內的大型機構、公司,都在使用Django作為網站開發框架。

這也就是為什麼對於大多數網站開發者來說,如果使用python作為開發語言,那麼Django就是唯一一個最常被提及的框架。尤其是因為下面的一些特性和優點,Django CMS總是作為網站開發中最基礎、最常用的管理系統:

1、有好多拿來就能直接使用的模板

2、操作資料庫

3、面向物件的程式設計方法

4、網路地址對映

5、內建網站伺服器

6、可以使用HTML表單獲取資料,並傳遞給伺服器(在Django中實現這一功能實在是太簡單了,以至於菜鳥也能輕鬆使用)

7、安全可靠的使用者許可權

8、直觀的管理介面

9、強大的XML/JSON處理功能

由於上面提到的這些方面,Django能夠勝任各種大型網站專案。你對這個框架心動了嗎?如果沒有,那我們看下一個。

CherryPy

CherryPy是僅次於Django的網站開發框架,它最大的特性就是能夠同時執行好幾個web服務。Django和CherryPy最大的區別在於,後者沒有像前者那樣多的模板,而是提供可以匯入的庫檔案。事實上,這種方式給開發者以很大的自由度和擴充套件性,程式設計師可以自由的選擇使用或者禁用各種模板、使用者許可權和資料庫。

除此之外,CherryPy事實上是一個基於Python的簡約而不簡單的HTTP框架,允許和所有型別的伺服器(如Apache等)進行互動。如果你是剛剛接觸網站開發,一定要記住在專案中最好形成一套自己用著順手的工具集合(我們應該清楚地知道,CherryPy具有靈活強大的外掛系統)。

TurboGears

TurboGears是一種MVC架構的網站開發框架,它基於一些WSGI元件(比如SQLAlchemy, Ming, Repoze等)、模板引擎( Genshi, Kajiki, Cheetah, Myghty)和大量的庫檔案以及中介軟體(middleware)。同時它具有 widgets控制元件,可以非常方便的生成一些特定的功能。

TurboGears的主要特色是:用FormEncode進行表單驗證;使用 Gearbox作為專案管理工具,並提供網路服務(新的版本也支援使用Apache或者Nginx作為伺服器);許多實用的命令列工具;支援MochiKit模組,一種處理文字內容的genshi模板引擎,同時包含建立UI和Tosca Widgets的庫檔案。這些常用功能給程式設計師帶來的方便,是其他框架所不能替代的。還有一點——許多使用TurboGears的程式設計師都會推薦它的精簡模式,也就是說,TurboGears可以配置成最輕量級的框架。

Flask

Flask是一個相當新的框架,他的開發者在深入徹底的研究了現有的各種框架後,分析了它們利弊,在此基礎上開發出了這一個取所有精華,去所有糟粕的web框架。

Flask是一個輕量級框架,簡單易學,它在一些僅有一兩個功能的小型專案上得到了大量應用。比如httpbin這樣的專案,簡單但非常強大。跟CherryPy差不多,支援所有的DBMS和模板引擎。Flask的優勢在於擁有眾多的擴充套件工具來建立基於網站的應用(應當鼓勵初學者多使用這些工具),它的程式碼同樣簡潔明瞭(只要3行程式碼就能搭建一個顯示“Hello World”的主頁),通過藍圖(blueprint)實現模組化管理,支援Django官方模板語言Jinja2,能夠建立基於API的方案和一次性工具(用其他框架實現這些功能的話,既費時又費力)。

Pyramid

我們提到的最後一個框架是Pyramid,它由Pylons專案中的一部分演變而來。Pyramid最大的特點就是靈活性和可擴充套件性(尤其和Django相比)。在使用Pyramid時,程式設計師可以自由的選擇使用什麼樣的資料庫、URL結構、模板風格等等,正如這個框架的開發者所說:

“那些重量級的框架都在替使用者做決定。但是如果這些不適合你,你也無可奈何;輕量級的框架不替你做決定,你可以很快的上手。但是隨著你的網站越做越大,你就會發現小框架限制了你的大專案。上面這兩種情況,都是隻關注專案的開始階段:不是太大就是太小,換句話說,在專案剛開始的時候,你並不能真正的預測到專案後期會有多大、功能會有多複雜。你需要一個注重網站後期開發的框架,這樣不管你的專案後期是大是小,它都能很好地滿足你的需求。Pyramid就是這樣一個框架,可大可小,剛剛好。”

使用Pyramid,可以不費勁的利用SQLAI建立傳統的RDBMS應用。和Flask一樣,Pyramid支援多種型別的模板語言和引擎,包括Jinja2和Mako,而且它自己也內建有解決方案。甚至,它還相容Chameleon——一個便捷的、通用的ZPT模板工具。

Pyramid被大家廣泛認可的優點包括:可以將一個完整的網站生成一個單一的檔案;可以修改的模板;可配置的資源;靈活的身份驗證和授權;高階的引導工具——pcreate;基於view的方法;支援命令型和陳述型的配置語法;HTTP快取;內建Session會話等等。一般而言,Pyramid是目前最流行的構建大中小型應用的框架。另一方面,正是由於這麼強大的靈活性,可能會讓一些有選擇困難症的初學者糾結於使用哪些功能,如果選擇不好,可能會掉進一個又一個的坑裡去。

選擇Python web框架:怎樣避免錯誤的選擇

讓我們總結一下。正如你所看到的,我們在選擇合適的框架時,應該是依據自身的需求和專案的特點,量體裁衣。對於上面的幾個框架,我都一視同仁,我並不堅持認為哪一個更好或者更差。

如果你想開發一款網路應用,卻不知道選擇哪一個合適的框架,最好的方法是找一些有經驗的人請教。當然,你也可以聯絡我們。

英文原文:https://webcase.studio/blog/best-python-frameworks/?utm_source=catalogs&utm_campaign=python
譯者:bird

∞∞∞

640?wx_fmt=jpeg&wx_lazy=1&wxfrom=5

IT派 - {技術青年圈}持續關注網際網路、區塊鏈、人工智慧領域640?wx_fmt=jpeg&wx_lazy=1&wxfrom=5

公眾號回覆“Python”

邀你加入{ IT派Python技術群 }