Django url路由分配

在項目文件中,urls.py文件目的是匹配用戶請求的url來執行對應的函數,格式以下:html

urlpatterns = [ url('admin/', admin.site.urls), url('^index/$', views.index,), url('^news/$', views.news), url('^download/$', views.download), ]

通常的分配只須要兩個參數,路徑和對應執行的函數,其餘兩個參數能夠不加。前端

url()的四個參數

第一個參數:

路徑字符串,使用正則匹配,常見於分頁和文章頁面。例:匹配4個數字   url(r'^index/[0-9]{4}/$', views.index)   當給匹配項添加()後url(r'^index/([0-9]{4})/$', views.index) ,會將該匹配項當作參數傳到views對應函數中,應爲def index(req, num):(參數名無限制,多個參數時按順序傳參)。也能夠設置爲有名參數,例:url(r'^index/(?P<name>[0-9]{4})/$', views.index)  這樣的話,views函數裏邊的形參只能是制定的名字 def index(req, name):。django

第二個參數:

匹配到以後須要執行的函數,固定格式。後端

第三個參數:

用處不大,詳見http://www.cnblogs.com/yuanchenqi/articles/6083427.htmlapp

第四個參數:

別名。顧名思義,在前端使用form表單驗證時,須要兩個參數,action和method,其中action是表單數據提交到的路徑是哪裏,通常狀況下action="/index/",可是此狀況有弊端,缺乏解耦,後端修改後前端也須要修改,因此別名用處就在於此。固定格式爲:name="home",前端格式爲:action={% url "home" %}。若是action="",默認將POST提交的數據給當前路徑。函數

 app路由應用

項目較大時,可能有許多路由映射,不符合解耦規範,此時,在每一個app中建立urls.py,在全局urls.py 配置一下便可,以下:url

項目urls.py from django.contrib import adminfrom django.conf.urls import url from django.urls import include urlpatterns = [ url('admin/', admin.site.urls), url('^blog/', include('mysite.urls')), ]
app下的urls from mysite import views from django.conf.urls import url urlpatterns = [ url(r'news/$', views.index, name="home"), ]

 

 

本文參見:http://www.cnblogs.com/yuanchenqi/articles/6083427.html spa

相關文章
相關標籤/搜索