Django簡介
軟件架構
什么是軟件框架
??舉個簡單的例子,對于一個公司來說,公司中有各個職能部門,每個部門各司其職,通過部門之間的配合來完成工作,這些部門就形成了一個公司的組織架構。從某種意義上來說,公司就是一種框架。那么對應到軟件設計上來說,軟件框架是由其中的各個模塊組成的,每個模塊負責特定的功能,模塊與模塊之間相互協(xié)作來完成軟件開發(fā)。
MVC
??MVC的全拼為Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代為程序語言Smalltalk發(fā)明的一種軟件設計模式,是為了將傳統(tǒng)的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的。隨著標準輸入輸出設備的出現(xiàn),開發(fā)人員只需要將精力集中在業(yè)務邏輯的分析與實現(xiàn)上。后來被推薦為Oracle旗下Sun公司Java EE平臺的設計模式,并且受到越來越多的使用ColdFusion和PHP的開發(fā)者的歡迎?,F(xiàn)在雖然不再使用原來的分工方式,但是這種分工的思想被沿用下來,廣泛應用于軟件工程中,是一種典型并且應用廣泛的軟件架構模式。后來,MVC的思想被應用在了Web開發(fā)方面,被稱為Web MVC框架。
??MVC框架的核心思想是:解耦,讓不同的代碼塊之間降低耦合,增強代碼的可擴展性和可移植性,實現(xiàn)向后兼容。
??當前主流的開發(fā)語言如Java、PHP、Python中都有MVC框架。
Web MVC各部分的功能
M全拼為Model,主要封裝對數(shù)據(jù)庫層的訪問,對數(shù)據(jù)庫中的數(shù)據(jù)進行增、刪、改、查操作。
V全拼為View,用于封裝結果,生成頁面展示的html內(nèi)容。
C全拼為Controller,用于接收請求,處理業(yè)務邏輯,與Model和View交互,返回結果。

Django簡介
??Django,發(fā)音為[`d???ɡ??],是用python語言寫的開源web開發(fā)框架,并遵循MVC設計。勞倫斯出版集團為了開發(fā)以新聞內(nèi)容為主的網(wǎng)站,而開發(fā)出來了這個框架,于2005年7月在BSD許可證下發(fā)布。這個名稱來源于比利時的爵士音樂家DjangoReinhardt,他是一個吉普賽人,主要以演奏吉它為主,還演奏過小提琴等。由于Django在近年來的迅速發(fā)展,應用越來越廣泛,被著名IT開發(fā)雜志SDTimes評選為2013SDTimes100,位列"API、庫和框架"分類第6位,被認為是該領域的佼佼者。Django的主要目的是簡便、快速的開發(fā)數(shù)據(jù)庫驅(qū)動的網(wǎng)站。它強調(diào)代碼復用,多個組件可以很方便的以"插件"形式服務于整個框架,Django有許多功能強大的第三方插件,你甚至可以很方便的開發(fā)出自己的工具包。這使得Django具有很強的可擴展性。它還強調(diào)快速開發(fā)和DRY(DoNotRepeatYourself)原則。
Django框架遵循MVC設計,并且有一個專有名詞:MVT
MVT各個部分的功能
M全拼為Model,與MVC中的M功能相同,負責和數(shù)據(jù)庫交互,進行數(shù)據(jù)處理。
V全拼為View,與MVC中的C功能相同,接收請求,進行業(yè)務處理,返回應答。
T全拼為Template,與MVC中的V功能相同,負責封裝構造要返回的html。

搭建虛擬環(huán)境
在這里我們所有的操作都將會在linux下進行
??如果在一臺機器上,想開發(fā)多個不同的項目,需要用到同一個包的不同版本,如果還使用上面的命令,在同一個目錄下安裝或者更新,其它的項目必須就無法運行了,怎么辦呢?
其實解決辦法就是創(chuàng)建虛擬環(huán)境。
為什么會使用虛擬環(huán)境
在日常使用電腦的時候我們會遇到一些事情。桌面上有一個word文件,我們打開修改這個文件,修改了一會之后發(fā)現(xiàn)還是原來的文件比較好,這個時候我想找回原來的文件就比較
困難了。那么怎么辦呢?就有這樣一種解決方案,在修改文件之前,先復制一份,然后在副本文件里進行修改,這樣即使發(fā)現(xiàn)修改有錯,也不會影響原始文件。
虛擬環(huán)境其實就是對真實pyhton環(huán)境的復制,這樣我們在復制的python環(huán)境中安裝包就不會影響到真實的python環(huán)境。通過建立多個虛擬環(huán)境,在不同的虛擬環(huán)境中開發(fā)項目就實現(xiàn)了項目之間的隔離。
創(chuàng)建虛擬環(huán)境
- 安裝虛擬環(huán)境
sudo pip3 install virtualenv #安裝虛擬環(huán)境
- 安裝虛擬環(huán)境擴展包
sudo pip3 install virtualenvwrapper
安裝虛擬環(huán)境包裝器的目的是使用更加簡單的命令來管理虛擬環(huán)境。
- 修改用戶目錄下的配置文件.bashrc,添加如下內(nèi)容:
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

- 使用source .bashrc命令使配置文件生效。
基礎的準備工作就算做完了,接下來就就是創(chuàng)建了
- 創(chuàng)建python3虛擬環(huán)境:
mkvirtualenv -p python3 虛擬環(huán)境名稱
如:mkvirtualenv -p python3 ljy_django

創(chuàng)建成功后將會自動工作在虛擬環(huán)境上

所有的虛擬環(huán)境,都位于/home/wengwenyu/下的隱藏目錄.virtualenvs下。
如果虛擬環(huán)境沒有創(chuàng)建成功可以升級一下pip包管理工具后重新一下虛擬環(huán)境:
sudo pip3 --default-timeout=10000 install --upgrade pip
- 退出當前虛擬環(huán)境
deactivate

-
查看和使用虛擬環(huán)境
查看當前用戶下的所有虛擬環(huán)境:
workon + tab(多點擊幾次tab就會看到)
Selection_005.png - 使用虛擬環(huán)境
上面使用workon 能查看當前用戶名下的所有虛擬環(huán)境,那么我們只需要在workon后面加上虛擬環(huán)境名稱就能切換到想要使用的虛擬環(huán)境下了,這樣就有利于平時的開發(fā)。
workon 虛擬環(huán)境名稱
例:
workon ljy_django
- 刪除虛擬環(huán)境
rmvirtualenv 虛擬環(huán)境名稱
查看一下當前所有的虛擬環(huán)境如下:
Selection_006.png
然后使用rmvirtualenv + 虛擬環(huán)境名稱來刪除
先退出: deactivate
再刪除: rmvirtualenv lll_django

- 安裝Django包
我們在這里選擇安裝django1.11的版本,這是2018年新的一個長期支持版本
先進入虛擬環(huán)境 mkvirtualenv ljy_practice
然后安裝pip install django==1.11


