是否有更好的替代django开发服务器(runserver), 特别是在concurency和静态服务中,并且具有自动重载功能,而无需设置完整的生产环境?
我在Windows上工作,因此不能使用gunicorn。
答案 0 :(得分:2)
不,因为开发站点处理有限的请求,runserver在可以满足您的应用程序要求的计算机上运行正常。 如果您正在处理系统无法容忍的大规模开发项目,那么要么重现生产环境,要么升级。 我发现很难相信你的应用程序在性能方面表现不佳,如果你试图测试完整生产站点的行为(在数据库条目等方面),那么它是时候模拟生产环境了。 如果不是这样,那么我会开始检查项目的基础模型/代码。
答案 1 :(得分:2)
您可以安装和使用rungevent
commant。它具有自动重载功能,并且比基于线程的服务器更具性能(它是面向绿色的)。唯一需要注意的是静态文件服务:你必须安装一个像nginx这样的网络服务器或代理。
你是否在你的开发服务器上进行了如此高的批量测试,所以你受此影响 - 特别是关于静态文件 - ?如果是这样,那么你必须仿效一个富有成效的环境(只需正确配置nginx指向你用于rungevent
命令的地址:端口)。
如果静态文件不是您的问题,请安装rungevent
命令并尝试其工作原理。
答案 2 :(得分:1)
好吧,如果你不想使用django dev服务器,你将不得不花费一些时间来设置。但最重要的是你只能做一次。顺序部署将花费很少的时间。
不久前我从fastcgi切换到uWSGI,这让我的生活更加轻松。
uWSGI太棒了!它具有自动重载功能(在守护进程模式下以及直接在终端中启动时)。在终端中启动时,您可以在请求期间使用调试器(例如pdb
),就像在django dev-server中一样。当然,在简单的情况下,您可以使用print
进行调试。
我正在使用nginx,它同时提供静态和uWSGI,但它当然可以是任何服务器。 对于我来说,这个配置中最有用的功能是你对开发和生产使用相同的东西。对于开发后的简单项目,您只需关闭自动重载和其他一些选项即可。