1. 程式人生 > >路由配置系統

路由配置系統

正則 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

  

  

  

路由配置系統