Django簡介和搭建開發(fā)環(huán)境

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交互,返回結果。

001.png

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。

002.png

搭建虛擬環(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

Selection_001.png
  • 使用source .bashrc命令使配置文件生效。
    基礎的準備工作就算做完了,接下來就就是創(chuàng)建了

  • 創(chuàng)建python3虛擬環(huán)境:

mkvirtualenv -p python3 虛擬環(huán)境名稱
如:mkvirtualenv -p python3 ljy_django

Selection_002.png

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


Selection_003.png

所有的虛擬環(huán)境,都位于/home/wengwenyu/下的隱藏目錄.virtualenvs下。

如果虛擬環(huán)境沒有創(chuàng)建成功可以升級一下pip包管理工具后重新一下虛擬環(huán)境:

sudo pip3 --default-timeout=10000 install --upgrade pip

  • 退出當前虛擬環(huán)境

deactivate

Selection_004.png
  • 查看和使用虛擬環(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


Selection_007.png
  • 安裝Django包
    我們在這里選擇安裝django1.11的版本,這是2018年新的一個長期支持版本

先進入虛擬環(huán)境 mkvirtualenv ljy_practice

然后安裝pip install django==1.11

Selection_08.png
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,205評論 3 119
  • 軟件架構 軟件框架是由其中的各個模塊組成的,每個模塊負責特定的功能,模塊與模塊之間相互協(xié)作來完成軟件開發(fā) 一個公司...
    錦魚閱讀 287評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,048評論 25 709
  • 用兩張圖告訴你,為什么你的 App 會卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,998評論 2 59
  • “真好,原來夏目并不寂寞,原來寂寞的只有我一個人” 夏目在一次課外活動中從惡霸妖怪手中偶然救下一個喪母獨居的小狐貍...
    良夜又逢末世人閱讀 513評論 0 2

友情鏈接更多精彩內(nèi)容