Django - URLs diferentes para produção e desenvolvimento?

2

É possível ter dois arquivos urls.py diferentes para um projeto, usando um deles o tempo todo, mas invocando o segundo para fins de desenvolvimento?

O que eu quero é isso:

Para produção (e é ao vivo 24/7), eu quero os seguintes links:

www.mydomain.com
www.mydomain.com/about/
www.mydomain.com/contact/

Mas para o desenvolvimento (que eu uso o runserver agora e depois como eu testei) eu quero todos os links básicos, além de mais alguns:

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/

Então, efetivamente, o mundo exterior nem sabe que meus links extras existem, já que eles não têm acesso a eles.

Isso é possível?

    
por Garfonzo 27.08.2011 / 04:32

2 respostas

2

Eu faria assim

No seu settings.py defina o seguinte

LOCAL_DEV = True

depois no seu urls.py

from django.conf import settings
if settings.LOCAL_DEV:
  urlpatterns = patterns('',
   #
   # all your other urls here for dev
   #
)
    
por 27.08.2011 / 06:04
0

O Django define o parâmetro ROOT_URLCONF para este caso de uso. Exemplo para diferentes conjuntos de URLs para ambiente de desenvolvimento e produção: crie dois módulos urls diferentes, por exemplo, urls_dev e urls_prod com diferentes urlpatterns . Estrutura do projeto:

myproj
├── models.py
├── views.py
├── ...
├── urls_dev.py
└── urls_prod.py

Nas suas configurações, redefina ROOT_URLCONF dependendo do ambiente em que você está:

# settings.py

if os.environ.get('DEVELOPMENT', None):
    ROOT_URLCONF = 'myproj.urls_dev'
else:
    ROOT_URLCONF = 'myproj.urls_prod'

ou até mesmo dividir as configurações individuais em dois módulos diferentes, settings_dev e settings_prod , cada um definindo seu próprio ROOT_URLCONF . Em seguida, inicie o servidor com as configurações selecionadas:

$ django-admin runserver --settings=myproj.settings_dev
    
por 28.03.2018 / 15:46

Tags