【1】Django概述

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

python程序web項目開發,是很是重要的一部分,Python爲基礎的web項目開發的框架有不少,django無疑是最強大web框架之一,也是咱們必須掌握的框架之一web

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

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

舉個簡單的例子,學習語言,就相似於學習各類物質的組成成分(是原子組成的仍是分子組成的),簡單一點鐵這種物質是怎麼構成的,有什麼特性,能夠用鐵來作什麼;學習框架,就相似於學習物質組成的物體的使用,給一個一把鐵錘,須要學會使用鐵錘,要學會使用鐵錘砸核桃,砸牆可是不能夠砸人哦。django

咱們能夠看出來,學習語言實際上是讓咱們擴展咱們大腦的知識庫,是一件很是枯燥的事情;可是學習語言爲基礎的框架,你就可勁造吧~即時玩壞了大不了從頭再來。編程

必定記住,學習框架,要敢寫代碼,敢玩代碼,敢出錯,敢從頭再來後端

一般狀況下,沒有框架,也能夠進行項目開發,可是全部的頁面視圖、模型數據、映射關係、數據庫存儲等等都須要手工進行開發和配置,比較耗時耗力,同時對於開發人員對程序語言的掌控很是的高,否則會形成不少潛在的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能作什麼?【這是咱們當前必需要明白的一個問題】

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

第2、Django能夠開發網站應用,如公司門戶網站、學校官方網站、新聞動態網站、購物網站等等各類涉及小、中、大型的網站

第3、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!