路由配置系統
阿新 • • 發佈:2017-06-28
正則 args pre ref style 對象 turn 錯誤 傳遞
URL配置(URLconf)就像Django 所支撐網站的目錄。它的本質是URL與要為該URL調用的視圖函數之間的映射表;你就是以這種方式告訴Django,對於這個URL調用這段代碼<br>對於那個URL調用那段代碼
urlpatterns = [ url(正則表達式, views視圖函數,參數,別名), ] 參數說明: 一個正則表達式字符串 一個可調用對象,通常為一個視圖函數或一個指定視圖函數路徑的字符串 可選的要傳遞給視圖函數的默認參數(字典形式) 一個可選的name參數
1. 單一路由對應
url(r‘^index$‘, views.index)
2. 基於正則的路由
/edit-user/(\w+)/ ? def edit_user(request,a1) 正則表達式 函數裏面需要在傳一個參數 /add-user/(?P<a1>\w+)/ ?def add_user(request,a1) 關鍵字 PS: # url(r‘^edit/(\w+)/(\w+)/‘, views.edit), #需要兩個參數,需要按照順序傳參 #url(r‘^edit/(?P<a2>\w+)/(?P<a1>\w+)/‘, views.edit),按照名稱放置 關鍵字
終止符:^edits$
偽靜態:url(r’^edit/(\w+).html$’,views.edit)
3.路由分發
urls.py url(r‘^app01/‘,include(‘app01.urls‘)), 總路由: url(r‘^‘,default), url不存在的話 可以默認寫 or 跳轉到index 的路徑下 url(r‘^‘,views.index), #路由默認不寫 或者路由錯誤 直接執行index的函數 app01.urls.py url(r‘^index.html$‘,views.index),
4.根據名稱可以反向生成URL
views.py: from django.urls import reverse #根據名字反轉成url def index(request,a1): #一一對應關系 user_list=[ "alex","eric","tony" ] v=reverse("n1",args=(1,)) #args= 數字自己規定 寫的是1 url也會體現出來 and v=reverse("n1",kwargs={‘a1‘:11111}) print(v) return render(request,‘index.html‘,{"user_list":user_list}) urls: url(r‘^index/(\d+)/‘,views.index,name="n1"), url(r‘^index/(?P<a1>\d+)/‘,views.index,name="n1"),
在html裏寫 url(r‘^login/‘,views.login,name=‘m1‘), <form method="POST" action="{% url "m1" %}"> /* 根據名稱也可以反生url*/ url(r‘^edit/(\w+)/‘, views.edit,name=‘n2‘) <li>{{ i }}<a href="{% url ‘n2‘ i %}">| 編輯</a></li> 跳轉的時候也可以做,不用寫url
路由配置系統