基于Django构建Blog(11)-URL

View篇中描述了View的实现细节,不过,要想让这些View工作起来,还需要告诉Django,用户请求与这些View之间的对应关系,只有这样,Django才能把到来的请求交由相应的的View去处理。

方法是在"urls.py"文件中添加"url模式",其实就是用正则表达式来描述对应到某个View的url。打开xblog/settings.py文件,找到"ROOT_URLCONF",发现它的值是'xblog.urls',这就是说xblog目录下的urls.py是根配置文件,Django要加载的就是这个urls.py文件。

为使用一些第三方App,在前面几篇中已经加入了针对这些App的"urls模式",同理,加入针对blog的"urls模式":
使用include方法指定另外的urls.py文件,与具体App相关的"url模式"不要直接在根配置文件中添加,在App目录中单独创建一个urls.py文件进行配置。

apps/blog/urls.py文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django.conf.urls import url
from . import views

urlpatterns = (
        url(r'^article/(?P<slug>\S+)/$', views.ArticleDetail.as_view(), name='article'),
        url(r'^archives/', views.Archives, name='archives'),
        url(r'^tag/(?P<slug>[-\w]+)/$', views.ArticlesOfTag, name='tag'),
        url(r'^category/(?P<slug>[-\w]+)/$', views.ArticlesOfCategory, name='category'),
        url(r'^', views.Home, name='home'),
)

这个在线工具可用来测试表达式的匹配效果,可以用一下。


Prev-基于Django构建Blog(10)-搜索
Next-基于Django构建Blog(12)-其它