这可能听起来很愚蠢,所以提前道歉。Django框架如何在幕后工作?
我想了解Django框架是如何在幕后实际工作的。这是我的理解是Django不运行所有的时间和得到由uwsgi/gunicorn或任何东西,当请求中的其他调用和处理如下:
- WsgiHandler或ModPythonHandler
- 导入设置,自定义异常
- 负载中间件
- 中间件 - > URLResolver
- 中间件 - >查看 - >模板
- 中间件 - >的HttpResponse
但我无法理解的是,有没有Django的任何部分,像缓存管理或一些其他功能或实例一直运行,而不是每个请求创建。如果你能解释一下或者给点建议,我会很感激。
谢谢丹尼尔!我知道一个进程可以存在多个请求,但是如果没有更多的请求,Django不会一直运行。所以,这意味着如果我们尝试缓存一些数据,例如,在使用类属性的模型中,只要进程没有终止,它就会保留在内存中。它会在下一个过程中再次提取。请纠正我,如果我错了。 –
只要进程正在运行,数据只保留在内存中,但不是“如果没有更多请求,Django不会继续运行”。这只会发生在某种自动缩放技术上,例如Google App Engine:几乎所有的环境都不会像那样工作。还要注意,如您所描述的缓存仅限于每个进程本地,并且不会跨进程共享。 –
谢谢!我必须upvote您的评论。 :-) –