所謂的MVC就是把Web應用分爲模型(M)控制器(C)和視圖(V)三層,他們之間以一種插件式的、鬆耦合的房仍是 鏈接在一塊兒,模型負責業務對象與數據庫的映射(ORM),視圖負責與用戶的交互頁面(頁面),控制器接受用戶輸入條 用模型和視圖完成用戶的請求,其示意圖以下所示:
django的MTV模式的本質和MVC是同樣的,也是爲了各組件間保持鬆耦合關係,只是定義有些不一樣,django的mtv分別是:html
這種設計模式關鍵的優點在與各類組都是鬆耦合的額,這樣,每一個有django驅動的web應用都有 着明確的目的,而且可獨立更改而不影響其餘的部分。 好比,開發者更改一個應用程序的URL而不用影響到這個程序底層的實現。設計師能夠更改HTML頁面 的樣式而不用接觸python代碼 數據庫管理員能夠從新命名數據庫表而且只須要更改模型,無需從一大堆文件中進行查找和替換。python
URL配置(URLconf)就像django所支持網站的目錄。它在本質是URL模式以及要爲改URL 模式調用的視圖函數之間的映射表。你就是這種方式告訴django,對於這個URL嗲用這段代碼, 對於那個URL調用那段代碼,URL的加載時從配置文件中開始。git
沒有前綴的狀況,使用的列表(推薦方式) urlpatterns = [ url(r'^hello/$', views.hello), ] 有前綴的狀況,使用patterns過期的方法
方法github
from django.conf.urls import url,patterns from hello import views urlpatterns = patterns('',url(r'^hello/$', views.hello)) 或 from django.conf.urls import patterns urlpatterns = patterns('hello',url(r'^hello/$', 'views.hello'),)
urlpatterns =[ url(正則表方式,view函數,參數,別名,前綴) ]
參數說明:web
一般一個URL分解器對應一個URL配置模塊,他能夠包含多個url模式, 也能夠包含多個其餘URL分解器,經過這種包含結構設計,實現django對URL的層級解析。正則表達式
URL分解器是django實現app與項目解耦的關鍵,一般include方法操做的url配置模塊,最終 會被解釋成URL分解器數據庫
url(r'^admin/', admin.site.urls),django
url(r'^test/\d{2}/$',views.test) url(r'^test/(?P<id>\d{2})/$',views.test) ===>test(id) url(r'^test2/(?P<id>\d{2})/(?P<key>\w+)/$',views.test) ==》test(id,key)關於正則表達式的使用能夠參考 建議爬蟲實戰中的正則表達式canvas