我想在我的Django应用程序中强化我的URL。我已经阅读了很多文档,但我仍然不确定如何做得更好。我有两个问题:
如何为两个不同的网址调用相同的视图? 我想打电话给www.mysite.com和www.mysite.com/index.html
的主页视图(r'^$', 'myapp.main.views.home')
(r'([-\w]+)$', 'myapp.main.views.home')
上面的代码听起来不错,但当然它会引发错误,因为主视图需要1个参数但是给出了2。我该如何解决这个问题?
我有很多应用程序,他们都有自己的urls.py文件。我处理它们将其urls文件包含在根urls.py中作为
(r'^warehouse/', include('myapp.warehouse.urls')),
通过这种方式,网址似乎是www.mysite.com/warehouse/blabla/ 但是,我想将它们强化为www.mysite.com/warehouse_blabla.html Slugifying并不难,但我如何解决此类网址并将其重定向到仓库应用中的blabla视图?
由于
答案 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'),
)
那就是说,我认为你会更好地坚持通常的斜线惯例