2

我有使用 PHP 的经验,但现在必须管理 python 应用程序。它已经开发并在实时服务器上运行。在实时服务器上,我们也有 beta.domain.com。除了主域应用程序之外,它有自己的相同源副本。

现在,当我们在模板中打印某些内容时,它会产生影响,但在此之前,按照 MVC,如果我们尝试打印或使用sys.exit()inmanage.py或稍后导入的“settings.py”或 then views.py,则根本不会影响这些文件。对刚才提到的文件进行任何更改后,网站仍然会呈现所有内容并显示相关模板。

另一件事,即使我们删除

return render_to_response('home.html', RequestContext(request, context))

views.py测试中,没有任何效果和网站仍然使用模板呈现。

我是否需要考虑,如果网站代码已经托管,那么为了在任何文件(.py)的代码中进行更改以反映新的代码,需要通过执行任何与项目相关的文件来重新初始化?

我不确定python代码需要如何更新,非常感谢任何快速帮助。

4

3 回答 3

4

每次更改代码时,都需要重新启动 Apache 服务器。

<path to apache>/bin/apachectl restart

该进程的 python 解释器已经在之前的 web 请求中加载了你的 python 模块。一旦模块被加载,它就会存储在内存中。下次请求到来时,Python 解释器将简单地使用已加载到内存中的模块版本。因此,您更改的代码将不会被拾取。

于 2013-09-19T09:48:52.123 回答
0

请,请,请不要尝试在您的实时服务器上编辑文件。你只会让自己陷入可怕的困境。使用本地副本进行开发,最好通过版本控制系统克隆,并定期部署而不是每次更改。

要回答您的问题,您通常需要重新启动 WSGI 进程才能看到 Python 代码更改。一个简单的方法是touch使用 .wsgi 文件,此时 mod_wsgi 将检测到它已更改,并重新加载所有内容。否则,您可以简单地重新加载 Apache。

不幸的是,我不明白您对 manage.py 或 sys.exit 的引用。

于 2013-09-19T08:53:04.680 回答
0

解决方案是按照 Sudipta 的回答重新启动 apache 服务器。每次解释 py 文件时,都会为每个相应的 .py 文件创建 .pvc 文件。重新启动 Apache 服务器时,所有 python 源文件都会再次解释和新的 .pvc文件被生成,只有这些文件才会运行,直到 apache 再次重新启动。

于 2013-09-20T09:30:03.233 回答