Возможно ли иметь два разных файла urls.py для одного проекта, используя один из них все время, но затем вызывая второй для целей разработки?
Я хочу вот что:
Для производства (и работает круглосуточно) мне нужны следующие ссылки:
www.mydomain.com
www.mydomain.com/about/
www.mydomain.com/contact/
Но для разработки (которую я использую runserver
время от времени, пока я тестирую), мне нужны все базовые ссылки плюс еще несколько:
www.mydomain.com
www.mydomain.com/about/
www.mydomain.com/contact/
www.mydomain.com/secret/sauce/
www.mydomain.com/punchanella/in/the/zoo/
www.mydomain.com/me/too/
Таким образом, внешний мир даже не знает, что мои лишние ссылки существуют, поскольку у них нет к ним доступа.
Это вообще возможно?
Я бы сделал это так
В вашем settings.py установите следующее
LOCAL_DEV = True
затем в вашем urls.py
from django.conf import settings
if settings.LOCAL_DEV:
urlpatterns = patterns('',
#
# all your other urls here for dev
#
)
Django определяет ROOT_URLCONF
параметр для этого варианта использования. Пример различных наборов URL-адресов для среды разработки и производства: создайте два разных urls
модули, например urls_dev
и urls_prod
с разными urlpatterns
. Структура проекта:
myproj
├── models.py
├── views.py
├── ...
├── urls_dev.py
└── urls_prod.py
В своих настройках переопределите ROOT_URLCONF
в зависимости от того, в какой среде вы сейчас находитесь:
# settings.py
if os.environ.get('DEVELOPMENT', None):
ROOT_URLCONF = 'myproj.urls_dev'
else:
ROOT_URLCONF = 'myproj.urls_prod'
или даже разделить отдельные настройки на два разных модуля, settings_dev
и settings_prod
, каждый определяет свой ROOT_URLCONF
. Затем запустите сервер с выбранными настройками:
$ django-admin runserver --settings=myproj.settings_dev