2010-08-17 75 views
0

对不起,对于完全愚蠢的问题,但情况是我必须对Django网站进行一些更改,并且我已经了解了python中的零知识。我改变了Python代码,但看不到结果

我一直在阅读Django文档,并发现在哪里做出改变,但有非常奇怪的情况。当我更改视图,模板,配置或任何网站 - 没有任何反应。

它看起来像代码被缓存。当我完全删除网站的文件夹 - 永恒的工作正常,除了CSS停止工作。

这是至关重要的,奠定了该网站的文件夹之外的唯一一个文件是starter.py蒙山代码

#!/usr/local/bin/pthon2.3 

    import sys, os 

    .... importing some pathes and other conf stuff 

    import django.core.handlers.wsgi 
    application = django.core.handlers.wsgi.WSGIHandler() 

请有谁能够告诉我我究竟做错了什么?

+0

你在通过Apache运行Django吗?如果是这样,你必须重新启动Apache才能看到大部分更改(尽管对模板的更改应该立即显示,除非您使用模板缓存进行一些疯狂操作)。 – 2010-08-17 14:29:59

+0

是的,这是appache。其实这是远程托管。几乎不可能重新启动appache。 和缓存 - 是的,有一些缓存。 from genum.django.cache import cache,huge_cache,requestcachedmethod 但是在删除它们后,它们再次出现没有变化。有没有其他方法可以在不重新启动Appache的情况下重启代码? – 2010-08-17 14:33:59

+0

如果您使用apache和mod_wsgi,则可以通过更新wsgi挂载点修改日期来重新加载wsgi应用程序。 (只是在执行'touch/path/to/mount/point.py'就可以了) – carl 2010-08-17 17:58:43

回答

3

Python web应用程序通常与PHP不同,因为一旦更改源代码,软件不会自动重新加载。这是有道理的,因为初始化,启动解释器等不必在每个实例中执行。这不是代码被“缓存”;它只加载一次。 (Python会缓存它的字节码,但它可以透明地检测变化,所以你不必担心这一点。)所以你需要找到一种方法来重新启动WSGI程序。在您的特定网站主机环境中如何完成这一操作,可以让您在Web主机或系统管理员的帮助下找到答案。

除此之外,Django还会缓存其视图(如果该功能已打开)。在这种情况下,您需要使缓存失效。

+0

谢谢lovborg – 2010-08-17 18:26:22

相关问题