Django Web 开发实战

URL配置

到目前为止,尽管我们已经写出来了视图,但在访问/或是/post/1时,仍不能访问到,因为我们还没有将视图绑定到相应的URL上去。

Django通过urls.py来设置应用的URL,对于你所编写的每一个views,需要要添加到urls.py中去。你可以所有应用的url都添加到主urls.py,但我个人更喜欢每个应用都有一个独立的urls.py,然后添加每个应用的URL添加到主urls.py上去的。即然这样,我们需要为blog这个App编写一个URL:

$ cat blog/urls.py
from django.conf.urls import patterns, url

urlpatterns = patterns('',
                       url(r"^$", "blog.views.index", name="index"),
                       url(r"^post/(?P<pk>\d+)/$", "blog.views.post", name="post"),
)

对于index视图,由于这个项目就只有一个Blog应用,所以我们对于index,我们直接设置为/目录,指定名称为index。对于post,我们需要通过id进行访问,所以需要编写一个正则式。

这一步完成之后我们再将blog/urls.py添加到我们的主URL控制器上:

$ cat djblog/urls.py
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
                       url(r'^', include('blog.urls')),
                       url(r'^admin/', include(admin.site.urls)),
)

将blog放到根目录,导入方式,使用include,内容为APP_NAME.urls