MVC設計模式:Model-View-Controller簡寫。html
最先由TrygveReenskaug在1978年提出,是施樂帕羅奧多研究中心(Xerox PARC)在20世紀80年代爲程序語言Smalltalk發明的一種軟件設計模式,是爲了將傳統的輸入(input)、處理(processing)、輸出(output)任務運用到圖形化用戶交互模型中而設計的。隨着標準輸入輸出設備的出現,開發人員只須要將精力集中在業務邏輯的分析與實現上。後來被推薦爲Oracle旗下Sun公司Java EE平臺的設計模式,而且受到愈來愈多的使用ColdFusion和PHP的開發者的歡迎。如今雖然再也不使用原來的分工方式,可是這種分工的思想被沿用下來,普遍應用於軟件工程中,是一種典型而且應用普遍的軟件架構模式。後來,MVC的思想被應用在了Web開發方面,被稱爲Web MVC框架。python
MVC是軟件工程中經常使用的軟件架構模式,它是一種分離業務邏輯與顯示界面的設計方法。它把軟件系統分爲三個基本部門:模型(Model)、視圖(View)和控制器(Controller)。web
MVC框架的核心思想是:解耦,讓不一樣的代碼塊之間下降耦合,加強代碼的可擴展性和可移植性,實現向後兼容。算法
當前主流的開發語言如Java、PHP、Python中都有MVC框架。數據庫
Django的MTV模式本質上和MVC是同樣的,也是爲了各組件間保持鬆耦合關係,只是定義上有些許不一樣,Django的MTV分別是值:django
除了以上三層以外,還須要一個URL分發器,它的做用是將一個個URL的頁面請求分發給不一樣的View處理,View再調用相應的Model和Template,MTV的響應模式以下所示:設計模式
通常是用戶經過瀏覽器向咱們的服務器發起一個請求(request),這個請求回去訪問視圖函數,(若是不涉及到數據調用,那麼這個時候視圖函數返回一個模板也就是一個網頁給用戶),視圖函數調用模型,模型去數據庫查找數據,而後逐級返回,視圖函數把返回的數據填充到模板中空格中,最後返回網頁給用戶。瀏覽器
pip install django -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com服務器
咱們以最多見的電商網站爲例,網站上有跟用戶有關的頁面,有跟商品有關的頁面,還有跟訂單有關的頁面,這樣的一塊內容其實就是網站的一個功能模塊。session
在django中,項目的組織結構爲一個項目包含多個應用,一個應用對應一個業務模塊。
建立項目的命令以下:
django-admin startproject 項目名稱
建立一個項目,項目名爲djangotest。
django-admin startproject djangotest
而後咱們查看下djangotest的目錄。
manage.py是項目管理文件,經過它管理項目。
而後就是與項目同名的目錄,此處爲djangotest。
使用一個應用開發一個業務模塊,此處建立應用名稱爲booktest,完成圖書的信息維護。
python manage.py startapp booktest
應用建立成功後,須要安裝纔可使用,也就是創建應用和項目之間的關聯,在djangotest/settings.py中INSTALLED_APPS下添加應用的名稱就能夠完成安裝。
初始項目的INSTALLED_APPS:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ]
接下來在元組中添加一個新的項,當前示例爲booktest:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'booktest', ]
在開發階段,爲了可以快速預覽到開發的效果,django提供了一個純python編寫的輕量級web服務器,僅在開發階段使用。
運行服務器命令:
python manage.py runserver ip:端口
能夠不寫IP和端口,默認IP是127.0.0.1,默認端口爲8000。
服務器啓動成功:
緊接着在瀏覽器中輸入網址「127.0.0.1:8000」,能夠查看當前站點開發效果。
若是增長、修改、刪除文件,服務器會自動重啓;
按ctrl+c中止服務器。