Django
Django是一個開放源代碼的Web應(yīng)用框架,由Python寫成。是一個基于MVC構(gòu)造的框架。但是在Django中采用了MVT的軟件設(shè)計模式,即模型Model,視圖View和模板Template。它最初是被開發(fā)來用于管理勞倫斯出版集團旗下的一些以新聞內(nèi)容為主的網(wǎng)站的。并于2005年7月在BSD許可證下發(fā)布。
MVC框架
MVC框架,它強制性的使應(yīng)用程序輸入、處理和輸出分開。使用MVC應(yīng)用程序被分成三個核心部件:模型、視圖、控制器。它們各自處理自己的任務(wù)。
MVC設(shè)計模式核心:
解耦,讓不同代碼塊之間降低耦合,增強代碼的可擴展和可移植性,實現(xiàn)向后兼容。
M(Model):數(shù)據(jù)存取層,主要封裝對數(shù)據(jù)庫層的訪問,實現(xiàn)對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增、刪、改、查操作。
V(View):表現(xiàn)層,用于封裝結(jié)果,生成向頁面展示的html頁面,或返回數(shù)據(jù)給用戶。
C(Controller):業(yè)務(wù)邏輯層,用于接收用戶請求,處理業(yè)務(wù)邏輯,與Model和View交互,返回結(jié)果。
MVC流程分析:

MVT模式
Django采用的是MVT模型,MVT和MVC有一點不同之處,但是本質(zhì)上其實都是差不多的,只是換了一個說法:
M(Model):與MVC中的M功能相同,負(fù)責(zé)和數(shù)據(jù)庫交互,進(jìn)行數(shù)據(jù)處理。
V(View):與MVC中的C功能相同,接收請求,進(jìn)行業(yè)務(wù)處理,返回應(yīng)答。
T(Template):與MVC中的V功能相同,負(fù)責(zé)封裝構(gòu)造要返回的html。
在Django中還有一個分發(fā)器,所有來自用戶的請求都先交由分發(fā)器處理,分發(fā)器處理后將用戶請求交由對應(yīng)的View進(jìn)行業(yè)務(wù)處理。
安裝Django
在實際開發(fā)中我們需要處理多個不同的項目,各個項目用的Django版本或者其他的庫可能不盡相同,所以我們需要在虛擬環(huán)境中開發(fā)。
創(chuàng)建虛擬環(huán)境
windows環(huán)境
1.安裝virtualenv:
pip install virtualenv
2.創(chuàng)建虛擬環(huán)境:
virtualenv --no-site-packages ./env1
說明:--no-site-packages指定不創(chuàng)建除pip等幾個關(guān)鍵的庫之外的其他任意庫;-p在多版本解釋器的情況下,用于指定python解釋器的路徑,如果只有一個python解釋器可以不用指定;最后還需要指定創(chuàng)建env的路徑。
如圖:

3.進(jìn)入虛擬環(huán)境安裝Django
cd env1/Scripts/
activate # 啟動虛擬環(huán)境
pip install django==1.11 # 在虛擬環(huán)境中安裝指定版本的Django
如圖:

說明:安裝django的時候可以指定版本,如果不指定版本則默認(rèn)安裝最新版本
4.退出虛擬環(huán)境使用deactivate
Centos7安裝
在Centos7中創(chuàng)建虛擬環(huán)境和在windows環(huán)境下創(chuàng)建虛擬環(huán)境的步驟其實差不多,只是centos中已經(jīng)預(yù)裝了python 2.7版本,我們自己安裝了python3.x在創(chuàng)建虛擬環(huán)境的時候需要指定版本。
pip3 install virtualenv # 安裝虛擬環(huán)境
virtualenv --no-site-packages -p /usr/local/python3/bin/python /mnt/virtual/env/ #/mnt/virtual/env下創(chuàng)建虛擬環(huán)境
cd /mnt/virtual/env/bin/
source activate # 啟動虛擬環(huán)境
pip install django==1.11 # 在虛擬環(huán)境中安裝django 1.11
deactivate # 退出虛擬環(huán)境
如圖:



創(chuàng)建第一個Django項目
在虛擬環(huán)境中創(chuàng)建第一個Django項目:
django-admin startproject project_name
windows和linux環(huán)境下創(chuàng)建Django的示例:


預(yù)覽創(chuàng)建的helloworld項目
要預(yù)覽Django項目也必須在創(chuàng)建的虛擬環(huán)境下執(zhí)行下面的命令才可以:
cd helloworld
python manage.py runserver
如圖:




注意:如果在啟動時沒有看到如上圖成功的頁面,原因可能有:一、配置為沒有設(shè)置所有主機可以訪問;二、防火墻沒有打開8000端口。在啟動helloworld項目時,runserver后面可以指定參數(shù)[ip:端口號],如果沒有指定則默認(rèn)是127.0.0.1:8000