一、URL 中的分发:
# 导入indlude模块,把url的详细路径配置到单个应用中
from django.conf.urls import url, include
urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^web/', include('web.urls'),)
]
二、URL中的命名空间(别名)
name关键字的作用是帮助模板解除硬编码的问题,不用在模板中写上绝对的路径,通过使用
{% url 'index'%}
这样别名的方式通过反向解析,获得路由,这样的好处是如果url路径有变化,后期只需要更改匹配路径就可以了,不用去模板中修改。
from django.conf.urls import url
urlpatterns = [
url(r'^index/', view.index, name='index'),
]
三、url中的分组
1. 位置分组:通过()来进行分组
from django.conf.urls import url
urlpatterns = [
url(r'^articls/(d+{6})/(d+{6})', view.articls_detail, name='articls_detail'),
]
def articl_detail(request, year, id):
""" 位置参数必须传正确才能取出对应的值,位置不能错误"""
- 通过关键字分组
# ?P<year> 这种方式给url中准确的限定传入的参数名称,在视图函数,只要通过关键字接收,可以不管位置。
from django.conf.urls import url
urlpatterns = [
url(r'^articls/?P<year>(d+{6})/?P<id>(d+{6})', view.articls_detail, name='articls_detail'),
]
def articl_detail(request, year, id):
""" 关键字传入的参数在接收的形参中位置无所谓,但是接收的形参一定要跟url中的<>中的参数一致"""