django - 应用程序 URL 到项目 URL

标签 django django-urls

我有一个正在生产的 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”。

This part of the docs are explains it really well

关于django - 应用程序 URL 到项目 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153678/

相关文章:

django - 设置 uWSGI 和 Django 应用

django - 反向未找到 : Sending Request Context in from templates

python - Django 类型错误 : url() takes from 2 to 4 positional arguments but 16 were given

python - 在用户提交表单时使用 Tweepy OAuth 对用户进行身份验证

python - 如何从当前url获取参数

python - Django 管理员 : removing app name from URL for single-app projects

python - Django HttpResponseRedirect

javascript - 在 django 网站中托管一个 "non-django app"(一个包含 index.html、一些 .js 和 .css 的文件夹)

python - 在 Django 中添加到 INSTALLED_APPS 的目的是什么?

python - 如何处理 django 模型中的模型通用属性?