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中的路由关系

猜你喜欢

转载自www.cnblogs.com/dangrui0725/p/9611291.html