Python開發人員有大量的框架可供選擇來用於他們的Web項目。不過,如今Django毫無疑問已成爲世界上Python開發人員中最流行的Web框架。本w未來談談Python開發人員爲何喜歡Django而不是其餘流行的Python Web框架,如Flask,Pyramid,Tornado,Bottle,Diesel,Pecan,Falcon等等。html
在談論Django以前,讓咱們先簡單瞭解一下什麼是Web框架前端
Web框架是一個代碼庫,能讓開發人員更容易構建動態網站,Web應用程序和Web服務。衆所周知,每一個網站都有一個經常使用的功能(如處理會話,數據驗證等),每次建立網站時都須要從新編寫這些代碼。這個過程是很是平淡乏味。然而,使用Web框架能夠解決您每次建立網站時從新編寫經常使用功能的尷尬處境,從而實現更快的開發。簡而言之,Web框架能夠簡化Web開發過程。vue
爲何Django是Python開發者的最佳Web框架python
Django是以Python編寫的高級,MVC風格的開源庫。 Django也被稱爲「完美主義者的最後框架」,它最初是爲新聞網站設計的,而且容許開發人員編寫數據庫驅動Web應用程序,所以無需從頭開始編碼。數據庫
除了更快完成常見的Web開發任務,Django還能使設計過程乾淨務實。 Django是新的Python Web開發人員的最佳選擇,其官方文檔和教程是軟件開發中最好的。django
在技術市場充斥着一系列網絡框架,但Django一直是最受歡迎的服務器端Web框架。設計Django最初的緣由是:不要重複造輪子。 Django是用Python編寫的,經過最小化編寫代碼來提升效率,再加上雲平臺的支持,使Django成爲Web開發者最受歡迎的選擇。
api
Django的主要特色
安全
一、Django配有「Batteries-Included"服務器
Django基於「Batteries-Included」的理念,可沒必要使用單獨的庫來實現常見功能,例如身份驗證,URL路由,模板系統,對象關係映射器(ORM)和數據庫模式遷移。若是您正在使用或使用Flask,您必須注意到它要求一個單獨的庫,如用Flask-Login來執行用戶身份驗證,而 Django沒必要這樣作。網絡
二、免費API
使用Django,能夠根據您的模型生成Python API,不須要額外的編碼就可以生成API了。
三、獨特的管理界面
即便在網站徹底構建以前,您也能夠從外部貢獻者的網站上獲取有關信息,這就是Django的優勢。該框架使您可以快速輕鬆地從應用程序的模型中建立一個管理站點。
四、代碼佈局
與大多數Web框架相反,Django經過使用稱爲application的東西,更容易地將新功能插入到產品中。所以,開發人員一直被鼓勵編寫自包含的代碼。
五、Django的ORM專一於數據庫
Django的對象關係映射器(ORM)負責處理數據庫,因此沒有處理結構化查詢語言(SQL)那樣的麻煩,它主要用於查詢數據庫所需的數據。與許多經過SQL直接在數據庫上工做的Python框架不一樣,Django開發人員有一個獨特的工具來操縱相應的Python模型對象。 Django經過使用PostgreSQL,MySQL,SQLite和Oracle等關係數據庫管理系統來實現開箱即用的功能。
六、強大的內置模板系統
基於繼承系統,Django的模板容許開發人員從很是少許的前端代碼構建整個動態網站,經過使用上下文特定元素來替換模板的某些元素選項。想象一下,你知道你網站的每一個頁面都會有一個頁眉和一個頁腳。如今,您首先須要在網站的基本模板中編寫代碼。而後,您能夠從應用程序的其餘部分動態地更改這兩個內容之間的組件。
七、簡單可讀的URL
通常來講,很難正確閱讀在PHP os ASP中開發的URL。使用Django,您能夠建立簡單易讀的URL,這對人和搜索引擎都有好處。您也可使用其餘框架建立可讀URL,但沒有一個與Django同樣容易進行URL構造。
八、快速啓動,輕鬆建立RSS和Atom訂閱源
使用Django,您能夠經過建立一個簡單的Python類來快速,輕鬆地建立RSS和Atom 訂閱源。
九、自動建立數據庫中的表
若是數據庫中缺乏表,能夠經過在Django中執行migrate命令來自動建立表
十、輕鬆的數據庫遷移
Django最有用的功能之一就是數據庫遷移。使用Django的遷移,您能夠快速更改數據庫模式,跟蹤您的數據庫模式以及進行相關更改。遷移名稱有助於管理版本控制,而且可使用多種選項來合併版本並進行修改。
十一、安全
Django是高度安全的。該框架具備針對XSS攻擊,CSRF攻擊,SQL注入,點擊劫持,用戶管理,Cookie,電子郵件標題注入,加密,目錄遍歷等的默認保護。
中文轉載自 http://mp.weixin.qq.com/s/B1_qrQEztDcjAqGc1HomZg
英文原文:http://evontech.com/what-we-are-saying/entry/why-django-is-the-best-framework-for-python-developers.html
譯者:天高