我是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'),
正如我所说,我不是很有经验,所以如果你需要我提供更多信息,请告诉我。
答案 0 :(得分: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
时,将会执行。