您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Flask内置Web服务器的局限性是什么

Flask内置Web服务器的局限性是什么

这个问题没有一个正确的答案,但是请记住以下几点:@H_419_1@

通过适当的水平扩展,你很有可能可以永远扩展使用调试服务器。究竟何时需要开始扩展(或切换为使用“真实的” Web服务器),这还取决于你所托管的环境,用户的期望等。@H_419_1@

你可能会遇到的主要问题是服务器是单线程的。这意味着它将一次连续地处理每个请求。这意味着,如果你尝试服务多个请求(包括网站图标,图像,CSS和Javascript文件等静态项),则请求将花费更长的时间。如果任何给定的请求恰好花费很长时间(例如20秒),则整个应用程序将在该时间(20秒)内无响应。当然,这只是认设置:你可以增加线程数(或在其他进程中处理请求),这可以缓解某些问题。但是再一次,它在“高”负载下仍然会变慢。所谓的“高”负载将取决于你的应用程序以及对最大可接受响应时间的期望。@H_419_1@

一个问题是安全性:如果你完全关心安全性(不仅是应用程序本身中数据的安全性,还包括将要运行它的盒子的安全性),那么你不应该使用开发服务器。它尚未准备好承受任何形式的攻击。@H_419_1@

最后,开发服务器可能会完全失败。它并非设计用于长时间运行(几天,几周,几个月),因此尚未经过充分测试以达到此目的。@H_419_1@

因此,是的,它有局限性。是的,你仍然可以想象在生产中使用它。是的,我仍然建议使用“真实” Web服务器。如果你不喜欢需要安装Apache或Nginx之类的想法,则仍然可以使用一些WSGI Standalone服务器,该解决方案仍然像“运行python脚本”一样简单。设计用于生产中的服务器,就像python run_app.py在命令行中运行一样简单。通常,你只需要创建4-5行的python脚本即可导入和创建服务器对象,将其指向Flask app并运行它。@H_419_1@

gunicorn可以仅在命令行上运行以下命令,而无需额外的脚本:@H_419_1@

gunicorn myproject:app

…其中“ myproject”是包含appFlask对象的Python包。请记住,其中一个“ gunicorn”开发商可能会建议你反对这种方法。@H_419_1@

Python 2022/1/1 18:24:37 有516人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶