python作為解釋型腳本言語,是一種通用的編程言語。因為python社區具有很多的庫文件、結構和其他的一些實用東西,咱們能夠用python完結各式各樣的任務。另外,因為python的代碼構成和結構就像英語句子相同天然,這種言語的學習曲線也比較平緩。因而和其他言語比較,好多網站開發人員更喜歡用python來保證代碼的可讀性。
可是,python一開端被規劃出來的時候,并沒有特別傾向于網站開發。正是因為這個原因,咱們在運用python做網站時,就不得不憑借數量繁多的web開發結構。在這篇文章里,咱們聊一聊2021年將會盛行的web結構。
圖片
最實用的結構列表:咱們總結的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結構:怎樣防止過錯的挑選
讓咱們總結一下。正如你所看到的,咱們在挑選適宜的結構時,應該是根據本身的需求和項目的特點,因地制宜。對于上面的幾個結構,我都一視同仁,我并不堅持認為哪一個更好或許更差。