在url文件中的經常使用配置:正則表達式
Django 1.1版本
from django.conf.urls improt urldjango
urlpatterns=[app
url(r'^ 正則表達式 $',views視圖,參數,別名),url
]spa
Django 2.0版本之後blog
from django.urls improt path字符串
urlpatterns=[模板
path('正則表達式',views視圖,參數,別名),import
]配置
分組:
在正則表達式中加( ) 如: url(r'^del_publisher/(\d+)', views.del_publisher),
有名分組:
在正則表達式中加( ?P<名字>) 如: url(r'^blog/(?P<year>\d{4})/[1-9]{2}/$', views.blog)
注意!!! 從URL上捕獲的參數都是字符串類型
引用其餘應用中的urls.py : include的位置同樣都在conf.py文件內
用django 1.1版本中的include
from django.conf.urls import url,include
urlpatterns=[
url(r'^app01/$',include('app01.urls')),
]
用django 2.0版本之後的include
from django.urls improt path,include
urlpatterns=[
path('app01/',include('app01.urls')),
]
url命名和反向解析:
1,命名: 在別名位置寫入name='名字'
如:url(r'^publisher_list/', views.publisher_list, name='publisher'),
使用:
不帶參數:
1,在視圖中使用(views.py文件);
from django.urls import reverse
reverse('名字') 備註:經過名字得到對應的路徑
2,在模板中使用(HTML.py文件):
{% url '名字' %} 備註:經過名字得到對應的路徑
帶有參數(分組):
如: url(r'^blog/(\d{4})/([1-9]{2})/$', views.blog, name='blog')
1,在視圖中使用:
from django.urls import reverse
revrese('名字',args=('參數','參數')) 備註:得到路徑,並將參數改爲本身輸入的 args是一個元組,若是隻有一個值需在參數後加逗號.
2,在模板中使用:
{% url '名字' '參數' '參數' %} 備註:參數能夠有多個,用空格隔開
帶有參數,並有命名分組:
如: url(r'^blog/(?P<year>\d{4})/(?P<month>[1-9]{2})/$', views.blog, name='blog')
1,在視圖中使用:
reverse('名字',kwargs={'命名':'參數','命名':'參數'})
也能夠用: revrese('名字',args=('參數','參數'))
2,在模板中使用:
{% url '名字' 命名='參數' 命名='參數'%}
定義: url(r'^app01/$',include('app01.urls',namespace='app01')),
在app01中的url url(r'^home/$', views.home, name='home'),
使用:
視圖:
reverse ('app01:名字') 名字如:home
模板:
{% url 'app01:名字' %} 名字如:home