這可能聽起來很愚蠢,所以提前道歉。Django框架如何在幕後工作?
我想了解Django框架是如何在幕後實際工作的。這是我的理解是Django不運行所有的時間和得到由uwsgi/gunicorn或任何東西,當請求中的其他調用和處理如下:
- WsgiHandler或ModPythonHandler
- 導入設置,自定義異常
- 負載中間件
- 中間件 - > URLResolver
- 中間件 - >查看 - >模板
- 中間件 - >的HttpResponse
但我無法理解的是,有沒有Django的任何部分,像緩存管理或一些其他功能或實例一直運行,而不是每個請求創建。如果你能解釋一下或者給點建議,我會很感激。
謝謝丹尼爾!我知道一個進程可以存在多個請求,但是如果沒有更多的請求,Django不會一直運行。所以,這意味着如果我們嘗試緩存一些數據,例如,在使用類屬性的模型中,只要進程沒有終止,它就會保留在內存中。它會在下一個過程中再次提取。請糾正我,如果我錯了。 –
只要進程正在運行,數據只保留在內存中,但不是「如果沒有更多請求,Django不會繼續運行」。這隻會發生在某種自動縮放技術上,例如Google App Engine:幾乎所有的環境都不會像那樣工作。還要注意,如您所描述的緩存僅限於每個進程本地,並且不會跨進程共享。 –
謝謝!我必須upvote您的評論。 :-) –