2

我有一个生产中的 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 中?

4

1 回答 1

5

你必须重新定义你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的命名空间包含在内,但由于 Django 仍然加载它,它将包含您新定义的 url。从那里您可以重新定义您的所有 url,并让它们遵循与“myproject”相同的命名空间。

这部分文档很好地解释了它

于 2013-03-01T08:53:13.307 回答