使用 Django 和 Python 开发 Web 站点
2007-03-29 12:41:22 来源:WEB开发网核心提示: 这个职位公告板应用程序会在启动时打开一个索引和一个详细视图,它们可以通过以下的 URL 映射进行访问:/jobs 索引视图:显示最近的 10 个职位/jobs/1 详细视图:显示 ID 为 1 的职位信息这两个视图(索引视图和详细视图)都是在这个 jobs 应用程序的 views.py 模
这个职位公告板应用程序会在启动时打开一个索引和一个详细视图,它们可以通过以下的 URL 映射进行访问:
/jobs 索引视图:显示最近的 10 个职位
/jobs/1 详细视图:显示 ID 为 1 的职位信息
这两个视图(索引视图和详细视图)都是在这个 jobs 应用程序的 views.py 模块中实现的。在项目的 urls.py 文件中实现这种配置看起来如下所示:
清单 21. 在 djproject/urls.py 中实现视图的配置
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^admin/', include('django.contrib.admin.urls.admin')),
(r'^jobs/$', 'djproject.jobs.views.index'),
(r'^jobs/(?P<job_id>d+)/$', 'djproject.jobs.views.detail'),
)
注意 <job_id> 部分,这在后面非常重要。
最佳实践是提取出应用程序特有的 URL 模式,并将它们放入应用程序自身中。这样可以取消应用程序与项目的耦合限制,从而更好地实现重用。jobs 使用的应用程序级的 URL 配置文件如下所示:
清单 22. 应用程序级的 URL 配置文件 urls.py
from django.conf.urls.defaults import *
urlpatterns = patterns('',
(r'^$', 'djproject.jobs.views.index'),
(r'^(?P<job_id>d+)/$', 'djproject.jobs.views.detail'),
)
由于 view 方法现在都是来自同一个模块,因此第一个参数可以使用这个模块的根名称来指定 djproject.jobs.views,Django 会使用它来查找 index 方法和 detail 方法:
更多精彩
赞助商链接