Django用于处理其请求的底层基础架构是什么?
是否使用了线程,有人可以参考一下吗?
答案 0 :(得分:3)
Django不是网络服务器。这是一个Web框架。它作为应用程序运行的方式依赖于您提供服务的方法。
它可能是线程请求。它可能是流程。它甚至可能是异步的。
Django本身不提供文件;它将该工作留给您选择的任何Web服务器。
Wsgi是目前最常用的django服务方式,所以你应该调查不同wsgi实现的配置选项。
答案 1 :(得分:1)
如果在使用manage.py runserver
时遇到随机分段错误,因为您在项目中必须使用的某些基础C库不是线程安全的,请尝试
manage.py runserver --nothreading
代替。
对于使用mod_wsgi
之类的工具运行wsgi的生产服务,通常可以选择禁用线程。在这种情况下
WSGIDaemonProcess example processes=5 threads=1
参见https://modwsgi.readthedocs.io/en/develop/user-guides/processes-and-threading.html