提及Django框架,確定須要首先明確一個概念,即軟件框架。下面就是第一個問題:html
軟件框架:一般指的是爲了實現某個業界標準或完成特定基本任務的軟件組件規範,也指爲了實現某個軟件組件規範時,提供規範所要求之基礎功能的軟件產品。1python
軟件框架是具備基礎功能的軟件產品:web
軟件框架也是如此,只是說一個公司,它是針對某一市場而成立的,而軟件框架的設計是針對某一類軟件問題而設計的, 其目的主要是提升軟件開發效率。shell
軟件框架是由各個模塊組成,各個模塊都會有不一樣特定的功能。模塊與模塊之間相互配合來完成軟件的開發。數據庫
在介紹完軟件框架是什麼以後,就須要研究一下具體的框架模式,這裏介紹下MVC框架模式:django
筆者曾很困擾於這問題,查找了不少相關文字,做下總結和體會表述:
基本概念:設計模式
框架一般是代碼重用;
設計模式是設計重用,其只有實例化以後才能用代碼表示;
框架則介於二者之間,部分代碼重用,部分設計重用,有時分析也可重用。軟件架構師在製做軟件的時候、對軟件規劃的一種藍圖、通常是分層、畫出各個組件的關係。2瀏覽器
比較:bash
- 框架與架構:架構偏於設計,框架偏於技術;
框架較之架構更具體更加聚焦於具體業務場景,一個架構能夠經過多種框架來實現。- 框架與設計模式:設計模式較框架是更小的元素,更抽象;
一個框架中每每含有一個或多個設計模式,框架老是針對某一特定應用領域(好比說Django就是隻針對web開發),但同一模式卻可適用於各類應用。兩者共同致力於重用,於是思想能夠互相借鑑。- 架構與設計模式:
設計模式是用於解決一種特定的問題,範圍較小;架構針對體系結構進行設計,範疇較大。一個架構中可能會出現多個設計模式來結果架構中的問題。
邏輯思考順序:服務器
在作一個項目的時候,首先設計出來的應該是架構,而後再來考慮運用什麼框架和設計模式。不過平時遇到的都不是特別複雜的系統,用一些框架和設計模式足矣。3
(1)Model(模版)-View(視圖)-Controller(控制器)
- 最初是一種軟件設計模式,是爲了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的;
- 隨後,MVC的思想被應用在了Web開發方面,被稱爲Web MVC框架。
(2)
MVC的產生理念: 分工。讓專門的人去作專門的事。
MVC的核心思想: 解耦。讓不一樣的代碼塊之間下降耦合,加強代碼的可擴展性和可移植性,實現向後兼容。
(1)web mvc框架圖
(2)具體功能介紹
介紹完相關基礎概念後,下面對就Django框架進行總體邏輯和具體流程的瞭解:
- 主要目的是簡便、快速的開發數據庫驅動的網站
- 強調代碼複用,多個組件能夠很方便的以"插件"形式服務於整個框架,Django有許多功能強大的第三方插件,你甚至能夠很方便的開發出本身的工具包。
- 具備很強的可擴展性。
Django框架遵循MVC設計,而且有一個專有名詞:MVT
(1)Django MVT框架圖
(2)具體功能介紹:
問1:
若是在一臺機器上,想開發多個不一樣的項目,須要用到同一個包的不一樣版本,若是還使用sudo pip3 install 包名稱
的命令,在同一個目錄下安裝或者更新,其它的項目必須就沒法運行了,怎麼辦呢?
答1:使用虛擬環境。
問2:
什麼是虛擬環境?
答2:虛擬環境其實就是對真實pyhton環境的複製。
這樣咱們在複製的python環境中再去安裝相應的包就不會影響到真實的python環境了。
經過創建多個虛擬環境,在不一樣的虛擬環境中開發項目就實現了項目之間的隔離。
(1)首先安裝虛擬環境,命令以下:
sudo pip3 install virtualenv #安裝虛擬環境
(2)接下來還要安裝虛擬環境擴展包,命令以下:
sudo pip3 install virtualenvwrapper #安裝虛擬環境包裝器的目的是使用更加簡單的命令來管理虛擬環境。
(3)修改用戶家目錄下的隱藏配置文件.bashrc
,在文件最後處添加以下內容:
export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv source /usr/local/bin/virtualenvwrapper.sh
(4)建立python3虛擬環境的命令以下:
mkvirtualenv -p python3 虛擬環境名稱 例: mkvirtualenv -p python3 test1_py3
綜述:
建立成功後,會自動工做在這個虛擬環境上。
建立虛擬環境須要聯網。
工做在虛擬環境上,提示符最前面會出現"(虛擬環境名稱)"。
全部的虛擬環境,都位於/home/您的用戶名/下的隱藏目錄.virtualenvs下。
deactivate
workon 兩次tab鍵
workon 虛擬環境名稱
刪除虛擬環境:rmvirtualenv 虛擬環境名稱
例: 先退出:
deactivate
;再刪除:rmvirtualenv py_django
在虛擬環境中可使用pip命令操做python包:pip install 包名稱
注意:在虛擬環境中不可以使用
sudo pip install 包名稱
來安裝python包
,這樣安裝的包實際是安裝在了真實的主機環境上。
查看已安裝的python包:pip list
or pip freeze
這兩個命令均可以查看當前工做的虛擬環境中安裝了哪些python包,只是顯示的格式稍有不一樣。
安裝django包:pip install django==1.8.2
若是前面刪除過虛擬環境py_django,則須要先建立一下,不然直接安裝django包便可。
邏輯關係上是咱們能夠根據咱們的需求建立多個虛擬環境,而在每一個虛擬環境下咱們就能夠進行相關Django項目的建立
在不一樣的虛擬環境下咱們能夠自由的根據該虛擬環境下Django項目的須要進行相關包的安裝,這樣就解決了前文所說的同一個包不一樣版本之間的替代問題。
下面就介紹下Django項目的建立:
強調一下,建立Django項目前:
一是要在正確的虛擬環境中間(即要進入4.1步驟中已經建立好的虛擬環境中);
二是方便後期相關文件管理,咱們最好建立該項目的專屬文件夾。
建立項目的命令以下:
django-admin startproject 項目名稱 例: django-admin startproject test1
進入4.2.1建立的Django項目test1目錄,查看目錄樹形結構
manage.py
是項目管理文件,經過它管理項目。test1
。_init_.py
是一個空文件,做用是這個目錄test1能夠被看成包使用。settings.py
是項目的總體配置文件。urls.py
是項目的URL配置文件。wsgi.py
是項目與WSGI兼容的Web服務器入口。在django中,項目的組織結構爲一個項目包含多個應用,一個應用對應一個業務模塊。下面對應用進行介紹:
Django中對於應用的操做分爲建立和安裝,下面分別介紹:
建立應用的命令以下:
python manage.py startapp 應用名 例如: python manage.py startapp test_app
應用默認目錄說明:
_init.py_
是一個空文件,表示當前目錄booktest能夠看成一個python包使用。tests.py
文件用於開發測試用例,在實際開發中會有專門的測試人員,這個事情不須要咱們來作。models.py
文件跟數據庫操做相關。views.py
文件跟接收瀏覽器請求,進行處理,與M和T進行交互,返回頁面,定義處理視圖函數。admin.py
文件跟網站的後臺管理相關。migrations
文件夾以後給你們介紹。應用建立成功後,須要安裝纔可使用,也就是創建應用和項目之間的關聯;
創建應用和項目之間的聯繫,須要對應用進行註冊。
修改settings.py
中的INSTALLED_APPS
配置項。
經過上面的一些了操做,就可使用django提供的一個純python編寫的輕量級web服務器,僅在開發階段使用。
運行服務器命令以下:
python manage.py runserver ip:端口 例: python manage.py runserver
能夠不寫IP和端口,默認IP是127.0.0.1,默認端口爲8000。