【问题标题】:Django installing multiple apps on the same pageDjango 在同一页面上安装多个应用程序
【发布时间】:2012-07-12 11:09:35
【问题描述】:

我对 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'),

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

【问题讨论】:

    标签: python django url


    【解决方案1】:

    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/twohome2会被执行,当你输入http://localhost:8000/home1会被执行。

    【讨论】:

    • 那么如果我想同时显示两个应用,我只需要1个views.py文件?
    • 您创建的每个应用程序都有 1 个视图文件,并且您有一个 urls.py 将 URL 模式映射到您在多个应用程序的 views.py 中定义的方法。在 django 中,一个“文件”可以做多种事情;没有一个应用程序=一个文件的这种映射。您在 django 中创建的应用程序定义了多个视图(在一个 views.py 文件中),然后您必须将 url 映射到这些视图函数 - 您可以从 urls.py
    • 你知道详细描述这个主题的任何文章吗?虽然你似乎解释得很好
    • 我建议你通读official tutorial,然后发布具体问题;但先做一个search,你可能会发现你的问题已经被问及回答了。
    猜你喜欢
    • 2018-08-11
    • 2022-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多