2010-08-17 50 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