Django 路由 urls.py
URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。 urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ]
通过循环对于多个url匹配会从上到下,匹配成功后就直接执行对应的视图函数,直接break跳出循环
参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函数的默认参数(字典形式) 一个可选的name参数
无命名分组
url(r'article/(\d{4})/(\d{2})',views.article_year) # 这里在正则表达式中加了2个分组,相当于向view视图函数传递了两个参数
def article_year(request,year,month): # 使用year和month变量接收了传递过来的两个参数
return HttpResponse(“year:%s month:%s” %(year,month))
命名分组
url(r'article/(?P<year>\d{4})/(?P<month>\d{2})',views.article_year) # 在分组中加入?P<命名>
def article_year(request,year,month): # 必须使用year和month变量接收传递过来的两个参数,因为url中命名是什么这里就使用什么名称
return HttpResponse(“year:%s month:%s” %(year,month))
一个可选的name参数
url(r'register',views.register,name='reg') # 给此url起别名为reg
在模板文件中
<form action='{% url ‘reg’ %}' # reg 就对应的url中的register,当url中的register变为其它路径,不用再去修改模板文件
URL分发
全局的urls.py文件
from django.conf.urls import include, url urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^blog/', include('blog.urls')), # blog/开头的url全部去blog app中的urls.py文件中去找 ]
在app blog中自己建立urls.py,用于处理该app中的路由关系