Django
Django - 生產和開發的不同 URL?
是否可以為一個項目有兩個不同的 urls.py 文件,一直使用其中一個,然後出於開發目的呼叫第二個文件?
我想要的是這樣的:
對於生產(並且是 24/7 直播),我想要以下連結:
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