【问题标题】:Django app shows the same instance every time I hit the server每次我访问服务器时,Django 应用程序都会显示相同的实例
【发布时间】:2015-03-25 05:42:40
【问题描述】:

我有一个示例 Django 应用程序,它使用 mod_wsgi 托管在 Apache2 服务器上。目前我只在环回地址(127.0.0.1)上测试它。所以这就是我所做的:

  1. 打开一个选项卡并转到环回地址。然后我在 Django 应用程序上工作。
  2. 现在,当我启动另一个选项卡并转到环回地址时,Django 应用程序不会从头开始。它向我展示了另一个选项卡中发生的完全相同的事情。

如何避免这种情况?如果我在网络上运行应用程序,它会自动解决吗?我对此很陌生,我无法在谷歌上找到解决方案。我可以提供解决问题所需的任何文件。

【问题讨论】:

  • 您希望看到什么?在这种情况下,“从头开始”是什么意思?您是说新标签页的 URL 与前一个标签页完全相同?
  • Django 不是 PHP,它通常会重新解释每个请求的整个页面。除非您将 apache 配置为在 N 次网页浏览后终止它,否则同一个应用程序实例将继续运行并响应请求。
  • @PauloScardine 我不知道!有什么方法可以强制 Django 以其他方式表现并为每个页面请求加载一个新的应用程序实例。我正在尝试进行一项用户研究,并且至少有 20 位用户将同时使用该应用程序。
  • 是的,您可以设置maximum-requests=1,但这会降低性能。
  • 这会杀死已经运行的进程吗?我不希望这种情况发生。

标签: python django django-deployment


【解决方案1】:

您可能已经习惯了 PHP,在您对 PHP 源代码进行更改时无需重新启动服务器。出于开发目的,您可以设置maximum-requests=1。这将为每个请求启动一个新的 WSGI 进程。

您可能也对这个问题感兴趣:How to automatically reload Django when files change?

【讨论】:

    【解决方案2】:

    内置的开发服务器(通过python manage.py runserver 获得)将在您进行更改时刷新。 Apache 不会(默认情况下)。

    您要么需要重新启动 apache,要么需要在 WSGI 配置中设置 maximum-requests=1

    要走的路是运行内置的 dev 服务器进行开发,然后部署到 apache 服务器进行生产。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-21
      • 2020-11-17
      • 2014-01-15
      • 2019-10-09
      • 2021-10-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多