1. 程式人生 > >【1】Django概述

【1】Django概述

道生一,一生二,二生三,三生萬物
無名天地之始,有名萬物之母
——老子

python程式web專案開發,是非常重要的一部分,Python為基礎的web專案開發的框架有很多,django無疑是最強大web框架之一,也是我們必須掌握的框架之一

框架(framework),就是已經包含了專案結構和部分通用功能的自動化處理工具,主要用於進行專案的快捷和高效的開發

Python是一門程式語言,django只是基於python語言的一門技術,所謂技術,就是使用基礎程式語言封裝的工具;學語言~是學邏輯學思路,學技術是學應用學操作。

舉個簡單的例子,學習語言,就類似於學習各種物質的組成成分(是原子組成的還是分子組成的),簡單一點鐵這種物質是怎麼構成的,有什麼特性,可以用鐵來做什麼;學習框架,就類似於學習物質組成的物體的使用,給一個一把鐵錘,需要學會使用鐵錘,要學會使用鐵錘砸核桃,砸牆

但是不可以砸人哦。

我們可以看出來,學習語言其實是讓我們擴充套件我們大腦的知識庫,是一件非常枯燥的事情;但是學習語言為基礎的框架,你就可勁造吧~即時玩壞了大不了從頭再來。

一定記住,學習框架,要敢寫程式碼,敢玩程式碼,敢出錯,敢從頭再來

通常情況下,沒有框架,也可以進行專案開發,但是所有的頁面檢視、模型資料、對映關係、資料庫儲存等等都需要手工進行開發和配置,比較耗時耗力,同時對於開發人員對程式語言的掌控非常的高,不然會造成很多潛在的bug,讓專案出現不穩定的因素。
使用框架,能在一定程度上提升我們軟體開發的時效性,同時框架本身已經考慮到了各種軟體使用的特性,如高併發特性、資料安全特性、專案通用功能等等,方便開發人員在掌握一定的語言技術的基礎上,可以很快進入專案開發模式。

Django是一個python語言開發的、實現了MVC處理模式的用於動態網站的web框架。

1. 道生一

Django最初被設計的目的,是用來管理勞倫斯出版集團下的一些專門釋出新聞動態內容的管理網站的【老大說,公司網站需要,就有了Django】

對於網站內容的管理和釋出的操作流程,也稱為內容管理系統。

也就是傳說在後端快捷開發中流行的CMS系統(內容管理系統)

由於當時勞倫斯出版集團的老大,是比利時的吉普賽爵士吉他手Django Reinhart的粉絲,就以該吉他手的名字來對這個系統軟體進行了命名,都說有錢任性~這個世界就是這麼現實!

2.一生二

2.1. 正式版釋出

Django在勞倫斯出版集團經過幾年的完善之後,終於於2005年7月被開源釋放,經過很多開發界大咖一起改造並擴充套件了更加強大的功能之後,於2008年9月份釋出了第一個正式版本1.0版本,目前官網最新的版本已經迭代更新到1.11.x版本,我們的教程也會參考1.11版本的官方文件進行講解

2.2. 核心元件

Django被設計的核心元件主要包含

  • 物件關係對映(ORM):以python類的形式定義資料模型,和資料庫表關聯
  • URL分配:使用正則表示式匹配URL,可以設計任意的URL沒有特定限定,非常靈活
  • 模板系統:強大並且可擴充套件的模板語言,分隔設計、內容和程式碼,並且可以繼承
  • 表單處理:可以方便生成各種表單模型,實現表單的有效性驗證
  • 解決和處理效能問題的快取
2.3. 架構模式

Django本身是實現了MVC處理模式的一個框架、

MVC本來的設計思路是利用核心控制器(Controller:C)將我們的檢視(View:V)和模型資料(Model:M)關聯起來形成一個整體的軟體結構,利用模型資料和檢視將我們的展示和資料分離,利用控制器將我們的靜態資料和動態處理分離的一種設計思想

在Django中,控制器(Controller:C)的部分由框架自行處理,Django則更加註重於處理模型(Model)、模板(Template)、和檢視(View),業界也成為MTV模式

層次 職責
模型(Model) 處理與資料相關的所有事務,資料定義、存取資料、資料驗證等等
檢視(View) 處理與資料展示相關的功能,如在網頁中或者其他文件中按照什麼方式和佈局展示資料
模板(Template) 檢視的一部分動態內容,用於展示處理模型中的資料,是模型和檢視的橋樑

2.二生三,三生萬物

那麼,Django能做什麼?【這是我們當前必須要明白的一個問題】

第一、Django是一個python語言為基礎的web框架

第二、Django可以開發網站應用,如公司入口網站、學校官方網站、新聞動態網站、購物網站等等各種涉及小、中、大型的網站

第三、Django可以用於開發各種B/S結構的系統平臺專案,如公司內部資料管理平臺、公司工作流程管理平臺、內容管理系統平臺、OA辦公系統平臺等等

歸根結底,Django是用來進行B/S結構的網路軟體開發

關於軟體,我想說點什麼

軟體,是計算機上可以執行的用於進行資料處理的程式
軟體根據是否需要使用網路,劃分為:單機軟體、網路軟體

單機軟體:不需要聯網,在一臺PC上直接開啟就可以使用的軟體,如用於寫文件的word,計算機中的畫圖軟體、計算器軟體、暗黑破壞神2等等都是單機軟體
網路軟體:需要在聯網的情況下,才能正常的使用軟體中的各種功能,如QQ,淘寶,京東等等

網路軟體,又劃分為C/S結構的軟體和B/S結構的軟體
C/S結構的軟體,主要是指client-server軟體,也就是客戶端伺服器軟體,這樣的軟體在使用的過程中,需要下載軟體的安裝包,安裝到我們的個人PC上,然後開啟聯網使用,如QQ,英雄聯盟等等
B/S結構的軟體,主要是指browser-server軟體,客戶端只需要一個瀏覽器就可以,通過瀏覽器訪問伺服器上的資料,來完成軟體的功能,如淘寶、京東類似的網站就是B/S結構的軟體,我們在客戶端PC上只需要開啟瀏覽器訪問指定的URL地址,就可以進行購物等功能的使用了。

那麼,接下來,我們就要進入Django了,ARE YOU READY!