當前位置:
首頁 > 知識 > 統治Python開發世界的Web框架 —— Django

統治Python開發世界的Web框架 —— Django

新媒體管家


點擊上方「

Python開發

」,選擇「置頂公眾號」



關鍵時刻,第一時間送達!






對於 Python 開發者來說,Web 開發框架真可謂玲琅滿目。然而 Django , 毋庸置疑的成為最受青睞的 Web 框架。到底為什麼能如此受歡迎呢?往下看就知道了。





Python Web 框架 Django





授權協議:

BSD


開發語言:

Python


操作系統:

跨平台


Github:

https://github.com/django/django

 

28k







Django 簡介






Django 是 Python 編程語言驅動的一個開源模型-視圖-控制器(MVC)風格的 Web 應用程序框架。使用 Django,我們在幾分鐘之內就可以創建高品質、易維護、資料庫驅動的應用程序。Django 也被稱為「完美主義者的最終框架」,它最初是為新聞網站設計的,因為它允許開發人員編寫資料庫驅動的 Web 應用程序,而無需從頭開始編碼。






Django 特性







強大的資料庫功能


用 Python 的類繼承,幾行代碼就可以擁有一個豐富,動態的資料庫操作介面(API),如果需要你也能執行SQL語句




自帶的強大的後台功能


幾行簡單的代碼就讓你的網站擁有一個強大的後台,輕鬆管理你的內容!




優雅的網址


用正則匹配網址,傳遞到對應函數,隨意定義,如你所想!




模板系統


強大,易擴展的模板系統,設計簡易,代碼,樣式分開設計,更容易管理。




緩存系統


與memcached或其它的緩存系統聯用,更出色的表現,更快的載入速度。




容易的數據遷移


數據遷移是 Django 中最有用的功能之一。通過使用 Django 的遷移方法,你可以在短時間內改變一個資料庫模式。同樣也容易就能跟蹤你的資料庫模式和相關的改變。為數據遷移所做的命名能夠幫助你進行版本控制,還有很多選項可以用來合併版本和進行修改。




安全性


Django 非常安全,該框架默認情況下可以防止 XSS 攻擊、CSRF 攻擊,SQL 語句注入、點擊劫持、用戶管理、cookies、郵件標頭注入、密碼攻擊、目錄遍歷攻擊等等。




國際化


完全支持多語言應用,允許你定義翻譯的字元,輕鬆翻譯成不同國家的語言。







Django 架構設計







Django 是一個基於 MVC 構造的框架。但是在 Django 中,控制器接受用戶輸入的部分由框架自行處理,所以 Django 里更關注的是模型(Model)、模板(Template)和視圖(Views),稱為 MTV 模式。它們各自的職責如下:







從以上表述可以看出 Django 視圖不處理用戶輸入,而僅僅決定要展現哪些數據給用戶,而Django 模板 僅僅決定如何展現 Django 視圖指定的數據。或者說, Django 將 MVC 中的視圖進一步分解為 Django 視圖 和 Django 模板兩個部分,分別決定 "展現哪些數據" 和 "如何展現",使得 Django 的模板可以根據需要隨時替換,而不僅僅限制於內置的模板。




至於 MVC 控制器部分,由 Django 框架的 URLconf 來實現。URLconf 機制是使用正則表達式匹配 URL,然後調用合適的 Python 函數。

URLconf 對於 URL 的規則沒有任何限制,你完全可以設計成任意的URL風格,不管是傳統的,RESTful 的,或者是另類的。框架把控制層給封裝了,無非與數據交互這層都是資料庫表的讀,寫,刪除,更新的操作.在寫程序的時候,只要調用相應的方法就行了,感覺很方便。




程序員把控制層東西交給 Django 自動完成了。 只需要編寫非常少的代碼完成很多的事情。所以,它比 MVC 框架考慮的問題要深一步,因為我們程序員大都在寫控制層的程序。現在這個工作交給了框架,僅需寫很少的調用代碼,大大提高了工作效率。

在 Django 中,URLS、ORM、static、settings 等起著重要的作用。一個典型的業務流程是如下圖所示:











Django 工作機制







1.用 manage .py runserver 啟動 Django 伺服器時就載入了在同一目錄下的 settings .py。該文件包含了項目中的配置信息,如前面講的 URLConf 等,其中最重要的配置就是 ROOT_URLCONF,它告訴 Django 哪個 Python 模塊應該用作本站的 URLConf,默認的是 urls .py




2.當訪問 url 的時候,Django 會根據 ROOT_URLCONF 的設置來裝載 URLConf。




3.然後按順序逐個匹配 URLConf 里的 URLpatterns。如果找到則會調用相關聯的視圖函數,並把 HttpRequest 對象作為第一個參數(通常是 request)




4.最後該 view 函數負責返回一個 HttpResponse 對象。




Django 有一個非常活躍的社區,有80,000個StackOverflow問題和數不清的博客來自開發人員和高級用戶。 有一些流行網站使用 Django,包括 Bitbucket, Pinterest, Instagram, 以及 The Onion。 Django 的人氣不斷飆升,可能仍然是 Python 開發人員最受歡迎的選擇。






  • 來源:

    開源最前線



  • Python開發整理髮布,轉載請聯繫作者獲得授權




【點擊成為安卓大神】

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python開發 的精彩文章:

一文看懂Web伺服器、應用伺服器、Web容器、反向代理伺服器區別與聯繫
為什麼越緊的女人,男人越上癮?
我用Python爬了12萬條影評,告訴你《戰狼Ⅱ》都在說些啥
Python爬蟲:抓取手機APP的數據

TAG:Python開發 |