一个项目是否可以有两个不同的 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/
因此实际上外界甚至不知道我的额外链接的存在,因为他们无法访问它们。
这可能吗?
答案1
我会这样做
在您的 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
#
)
答案2
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