orm之路由层

一、简单配置

1.参数

第一个参数是正则表达式(如果要精准匹配:‘^publish/$’)

第二个参数是视图函数(不要加括号)

2.有名无名分组

注意有名分组和无名分组不要混用,无名分组必须要按位置传参

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^publish/[0-9]{4}/$', views.publish),#匹配四位数字
    url(r'^publish/(?P<year>[0-9]{4})/(?P<month>[0-9]{4}/)', views.add),#有名分组,会进行传参,add函数里,形参变量必须是year,month
    url(r'^add/\d+/$',views.add),#匹配任意长度的数字
    url(r'^flash/([0-9]{4})/([0-9{2}])',views.flash)#进行分组,这是无名分组,分组后会按位置进行传参,传到视图函数views.flash里
]
View Code

3.反向解析

先在路由层urls命一个名

  1)无参数:url(r"^/publish/",views.publish,name='ddd')

  2)无名分组:url(r“^publishadd/([0-9]{4})/([0-9]{2})”,views.publish,name='ddd')

  3)有名分组:url(r'^publishadd/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})',views.publish,name='ddd')

在模板层:

  1)无参数:{% url 'ddd' %}

  2)无名分组:{% url 'ddd' 2018 12 %}  在ddd后面直接传参

  3)有名分组:方式1:{% url ‘ddd’ 2018 12 %}按位置传参也可以

          方式2:{% url ‘ddd’ year=2018 month=12 %}

在视图层:

  from django.shortcuts import reverse

  在视图函数里:

  1)无参数:url=reverse(‘ddd’)

  2)无名分组:url=reverse('ddd',args=(2018,12))

  3)有名分组:url=reverse('ddd',args=(2018,12))还可以

          url=reverse('ddd',kwargs={'year':2018,'month':12})

4.路由分发

随着项目越写越大,会创建出多个app,app下面会有urls,这时对路由进行分发,可以细分管理好项目。

步骤:

  1)在总路由写相关配置

  from django.conf.urls import include

  url(r'^blog/',include('blog.urls'))

  url(r'^app01/',include('app01.urls'))

  2)在不同的app的urls里配置路由关系

  ****重点****总路由,不能加结束符$

猜你喜欢

转载自www.cnblogs.com/xufengnian/p/9982608.html
今日推荐