到目前为止,尽管我们已经写出来了视图,但在访问/
或是/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
。