Django基本网址崩溃问题

时间:2012-09-21 13:58:37

标签: django django-urls

我想在我的Django应用程序中强化我的URL。我已经阅读了很多文档,但我仍然不确定如何做得更好。我有两个问题:

  1. 如何为两个不同的网址调用相同的视图? 我想打电话给www.mysite.com和www.mysite.com/index.html

    的主页视图
    (r'^$', 'myapp.main.views.home')
    (r'([-\w]+)$', 'myapp.main.views.home')
    

    上面的代码听起来不错,但当然它会引发错误,因为主视图需要1个参数但是给出了2。我该如何解决这个问题?

  2. 我有很多应用程序,他们都有自己的urls.py文件。我处理它们将其urls文件包含在根urls.py中作为

     (r'^warehouse/', include('myapp.warehouse.urls')),
    
  3. 通过这种方式,网址似乎是www.mysite.com/warehouse/blabla/ 但是,我想将它们强化为www.mysite.com/warehouse_blabla.html Slugifying并不难,但我如何解决此类网址并将其重定向到仓库应用中的blabla视图?

    由于

1 个答案:

答案 0 :(得分:1)

关于第一个问题,你最好使用index.html URL的重定向(更适合SEO等)。

from django.views.generic.simple import redirect_to

urlpatterns = patterns('',
    url(r'^$', 'myapp.main.views.home')
    url(r'^index.html$', redirect_to, {'url': '/'}),
)

关于第二个问题,您的urls.py文件只是一组正则表达式,因此您可以控制要使用的URL方案:

urlpatterns = patterns('',
    url(r'^warehouse_(?P<slug>[_w]+).html$', 'warehouse.views.warehouse_detail'),
)

那就是说,我认为你会更好地坚持通常的斜线惯例