統治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開發整理髮布,轉載請聯繫作者獲得授權
【點擊成為安卓大神】
※一文看懂Web伺服器、應用伺服器、Web容器、反向代理伺服器區別與聯繫
※為什麼越緊的女人,男人越上癮?
※我用Python爬了12萬條影評,告訴你《戰狼Ⅱ》都在說些啥
※Python爬蟲:抓取手機APP的數據
TAG:Python開發 |