繁体   English   中英

Python 无服务器 webapp 与 WSGI 服务器

[英]Python serverless webapp vs WSGI server

我正在用 Python Flask 开发一个 web 应用程序。

我阅读了一些关于 WSGI 服务器的内容和警告消息“警告:这是一个开发服务器。请勿在生产部署中使用它。请改用生产 WSGI 服务器。”

如果我使用 GKE 或 App Engine 或 Cloud Ran,我需要学习 WSGI 吗?

TLDR:不,你不知道。 你只需要知道如何使用 Flask 运行你的应用程序。话虽如此,这并不意味着学习/理解 WSGI 是一种浪费,但它不是必需的。

更长的响应

Gunicorn是一个生产 WSGI 网络服务器,这是谷歌在他们的生产服务器上用来运行你的谷歌应用引擎应用程序的东西(如果你的应用程序不包含入口点)。 Waitress是另一个生产 WSGI 网络服务器。

您不一定要“学习”如何使用它们中的任何一个或 WSGI 的复杂性才能构建应用程序。 学习和理解 Flask 的工作原理就足够了

  1. 对于谷歌应用引擎

    只需使用 Flask 在您的开发环境中构建和测试您的应用程序(例如,使用flask run main.py运行您的应用程序。当您将应用程序部署到 Google App Engine 时,它将使用 Gunicorn 运行(除非您指定了一个入口点,而不是使用枪炮)

    另一方面,如果您使用dev_appserver.py在本地运行您的应用程序,例如您使用dev_appserver.py app.yaml运行您的应用程序,gcloud CLI 将首先安装 gunicorn,然后使用它在本地计算机上运行您的应用程序。

    在这两种情况下,您不必是 WSGI 或 gunicorn 方面的专家。 您只需要知道足以使用 Flask 运行您的应用程序即可。

    但是,请注意,您不能在 Windows 机器上使用dev_appserver.py在本地运行 Python 3 Apps(请参阅谷歌文档)。 我相信这是因为 gunicorn 没有在 Windows 上运行。但是如果你仍然想在 Windows 机器上为 Python 3 个应用程序使用dev_appserver.py ,你可以查看我们创建的 补丁(该补丁在运行时基本上将 Gunicorn 换成了 Waitress你的应用程序在你的开发机器上)

  2. 对于云跑

    您可以使用 Flask 对您的 App 进行编码和测试,然后在容器中使用 gunicorn(您不必是专家或对 gunicorn 了解很多)。 请参阅来自 Google 的“ hello world ”示例应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM