Django - 开发服务器替代品

问题描述 投票:0回答:3

是否有更好的 django 开发服务器(runserver)替代方案,它们具有更高的性能,特别是在并发和静态服务方面,并且具有自动重新加载功能,而无需设置成熟的生产环境?

我在Windows上工作,所以无法使用gunicorn。

django
3个回答
2
投票

您可以安装并使用

rungevent
命令。它具有自动重新加载功能,并且比基于线程的服务器(它是面向greenlet的)性能更高。唯一需要注意的是静态文件服务:您必须为此安装网络服务器或代理(例如 nginx)。

您是否在您的开发服务器中进行了如此大量的测试,因此您会遇到这种情况 - 特别是关于静态文件 - ?如果是这样,那么您必须如上所述模拟一个生产环境(只需正确配置 nginx 指向您用于

rungevent
命令的地址:端口)。

如果静态文件不是您的问题,请安装

rungevent
命令并尝试它的工作原理。


2
投票

不可以,因为开发站点是为了处理有限的请求,所以 runserver 在可以满足应用程序要求的计算机上运行良好。 如果您正在处理系统无法承受的大型开发项目,那么就需要重现生产环境或升级。 我发现很难相信您的应用程序在性能方面如此糟糕,如果您尝试测试完整生产站点的行为(在数据库条目等方面),那么是时候模拟生产环境了。 如果情况并非如此,那么我将开始检查项目的底层模型/代码。


1
投票

好吧,如果你不想使用 django 开发服务器,无论如何你都必须花一些时间来设置。但好处是你只能做一次。顺序部署将花费很少的时间。

不久前,我从 fastcgi 切换到 uWSGI,它让我的生活变得更轻松。 uWSGI 太棒了!它具有自动重新加载功能(既可以在守护程序模式下工作,也可以在终端中直接启动时工作)。在终端中启动时,您可以在请求期间使用调试器(例如

pdb
),就像在 django dev-server 中一样。当然,在简单的情况下,您可以使用
print
进行调试。

我将它与 nginx 一起使用,它同时提供静态和 uWSGI,但它当然可以是任何服务器。 在这个配置中对我来说最有用的功能是您在开发和生产中使用相同的东西。对于开发后的简单项目,您只需关闭自动重新加载和其他一些选项即可。

© www.soinside.com 2019 - 2024. All rights reserved.