django之url配置

来源:互联网 发布:华南师范大学 网络缴费 编辑:程序博客网 时间:2024/04/23 15:01
  • 首先来看一个简单url配置
from django.conf.urls import urlfrom . import viewsurlpatterns = [    url(r'^articles/2003/$', views.special_case_2003),    url(r'^articles/([0-9]{4})/$', views.year_archive),    url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),    url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),]
  • 包含其它URL配置

    注意,这个例子中的正则表达式没有包含$(字符串结束匹配符),但是包含一个末尾的斜杠。每当Django 遇到include()(django.conf.urls.include())时,它会去掉URL 中匹配的部分并将剩下的字符串发送给包含的URLconf 做进一步处理。

from django.conf.urls import include, urlurlpatterns = [    # ... snip ...    url(r'^community/', include('django_website.aggregator.urls')),    url(r'^contact/', include('django_website.contact.urls')),    # ... snip ...]
   另外一种包含其它URL 模式的方式是使用一个url() 实例的列表。例如,请看下面的URLconf:
from django.conf.urls import include, urlfrom apps.main import views as main_viewsfrom credit import views as credit_viewsextra_patterns = [    url(r'^reports/(?P<id>[0-9]+)/$', credit_views.report),    url(r'^charge/$', credit_views.charge),]urlpatterns = [    url(r'^$', main_views.homepage),    url(r'^help/', include('apps.help.urls')),    url(r'^credit/', include(extra_patterns)),]

在这个例子中,/credit/reports/ URL将被 credit.views.report() 这个Django 视图处理。

from django.conf.urls import include, urlfrom . import viewsurlpatterns = [    url(r'^(?P<page_slug>[\w-]+)-(?P<page_id>\w+)/', include([        url(r'^history/$', views.history),        url(r'^edit/$', views.edit),        url(r'^discuss/$', views.discuss),        url(r'^permissions/$', views.permissions),    ])),]

在这个例子中共同声明了一个前缀,对后面的内容进行分组

原创粉丝点击