Каков наилучший способ отобразить основные URL-адреса в проекте Django? - PullRequest
3 голосов
/ 09 января 2009

У меня есть проект Django, который содержит несколько приложений. Основной urls.py включает в себя urls.py из приложений, которые я включил, и все хорошо.

Теперь я хочу настроить проект так, чтобы при переходе на http://testsite/, вы получали ту же страницу, что и при переходе на http://testsite/app/.

Я могу сделать это, продублировав соответствующую строку в приложениях urls.py в проектах urls.py, но это выглядит грязно.

Кто-нибудь знает лучший способ?

Ответы [ 2 ]

6 голосов
/ 09 января 2009

Установить redirect_to с первого URL на второй, то есть:

from django.conf.urls.defaults import patterns, url, include
from django.views.generic.simple import redirect_to

    urlpatterns = patterns('',
        # Example:
        url(r'^$', redirect_to, {'url':'/app/'}),
        url(r'^app/', include('app.urls')),
        # ...
    )

НТН

1 голос
/ 10 января 2009

Перенаправление - это путь, потому что вы не хотите использовать несколько канонических URL для одного и того же ресурса (тратит впустую сок Google). В идеале вы должны выполнять перенаправление как можно ближе к краю своего стека, чтобы сохранить ресурсы сервера. Таким образом, вы можете сделать запись Django redirect_to urlconf, но вам лучше перенаправить Apache или nginx или insert-your-webserver-here, поэтому первоначальный запрос вообще не должен попадать в Django.

...