VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • 新手学习Django的十条注意点(3)


建议的方式是将各应用的URL配置在各自的urls.py中,这样可以使应用更容易重复使用到不同项目里:

1
2
3
4
5
6
urlpatterns= patterns('', 
  (r'^$', include('institution.urls')), 
  (r'^institution/', include('institution.urls')), 
  (r'^askalumini/', include('askalumini.urls')), 
  (r'^member/', include('member.urls')), 
)


如下是应用askalumini的urls.py:

1
2
3
4
5
6
urlpatterns= patterns('askalumini.views'
  url(r'^$','askHome',name='askaluminiurl'), 
  url(r'^questions/(?P<questionno>\d+)/$','displayQuestion',name='askquestiondisplay'), 
  url(r'^askquestions/$','askQuestion',name='askquestionurl'), 
  url(r'^postcomment/$','postComment',name="askquestioncomment"
)


刚才提到静态文件路径不要硬编码,url的处理方式也尽量不要硬编码,否则当你更改一个地址时会牵涉到多处的修改,可以使用一些url函数来处理。

在/project/askalumini/urls.py中,为每一个url定义了name,它可以帮助我们有效地在视图、模板和模型中处理url,而不是硬编码。

为保证名称的唯一,请遵照将url命名为<appname>/<somelabel>的习惯用法。

举例来说,在views.py文件中有如下代码:

1
HttpResponseRedirect("/askalumini/questions/54")


请改为:

1
2
from django.core.urlresolversimport reverse 
HttpResponseRedirect(reverse('askquestiondisplay',kwargs={'questionno':q.id}))


在模型中使用models.permalink装饰器来格式url:

1
2
3
@models.permalink 
def get_absolute_url(self): 
return ('profileurl2',(),{'userid':self.user.id})

相关教程