3

我对 Django 很陌生,绝对不是很有经验。

无论如何,我已经在本地网络上创建了自己的站点,并成功地使用 Django 1.4 创建了一个应用程序。但是当我尝试启动另一个应用程序时,它似乎只在某些(在我看来)特殊情况下出现在我的网站上。

每当我的 urls.py 文件看起来像这样时:

    urlpatterns = patterns('',
        url(r'^$', 'myapp1.views.home1', name='home1'),
        url(r'^$', 'myapp2.views.home2', name='home2'),

第一个应用程序显示在页面上,但是当我切换它们时,第二个应用程序显示在页面上:

    urlpatterns = patterns('',
        url(r'^$', 'myapp2.views.home2', name='home2'),
        url(r'^$', 'myapp1.views.home1', name='home1'),

正如我所说,我不是很有经验,所以如果您需要我提供更多信息,请告诉我。

4

1 回答 1

3

Django 通过将 URL 模式与您编写的某些代码进行匹配来工作views.py

在您的情况下,您将相同的模式 ( ^$) 指向两个视图方法。Django 将在找到匹配项时停止,因此当您切换模式时,它将始终匹配列表中的第一个条目。

如果您将模式更改为:

urlpatterns = patterns('',
        url(r'^/two$', 'myapp2.views.home2', name='home2'),
        url(r'^$', 'myapp1.views.home1', name='home1'),

现在当你输入时http://localhost:8000/two home2会被执行,当你输入时http://localhost:8000/ home1会被执行。

于 2012-07-12T11:15:56.327 回答