我有一个正在生产的 django 项目,目前仅包含一个应用程序。假设我的域名是 myproject.com
,我的应用程序名为 myapp
。我希望索引为 myproject.com/
而不是 myproject.com/myapp/
。
这就是我的 myproject/urls.py
的样子:
urlpatterns = patterns('',
url(r'^myapp/', include('myapp.urls')),
...
和myapp.urls.py
:
urlpatterns = patterns('myapp.views',
url(r'^$', 'about'),
...
如何在 myproject.com 下提供该应用程序?或者您应该通过重定向来执行此操作,例如在你的.htaccess 中?
最佳答案
您必须将 urls.py
重新定义为此
urlpatterns = patterns('',
url(r'^$', include('myapp.urls')),
...
这将捕获对“/”的所有调用。
这将从“根”启用您的所有网址。
当然,您必须编写 myapp.urls
,以便它们在以下情况下有意义:
输入网络浏览器。
更新
所以在一次大的聊天之后:我认为这就是你想要的纯代码方式
在你的根urls.py
url(r'', include('myapp.urls')),
在你的 myapp.urls
urlpatterns = patterns('myapp.views',
url(r'^$', 'first_view'),
url(r'^evilCellphones/$', 'another_view'),
)
这里实质上发生的是,您将 myapp.urls
包含到 no
命名空间,但由于 Django 仍然加载它,它将包含您新定义的 url。
从那里您可以重新定义所有网址并让它们遵循相同的名称
空间为“myproject”。
关于django - 应用程序 URL 到项目 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153678/