“内置服务器”如何与 Flask Web 应用程序一起使用?

Posted

技术标签:

【中文标题】“内置服务器”如何与 Flask Web 应用程序一起使用?【英文标题】:How does the "builtin server" work with a Flask web application? 【发布时间】:2019-09-20 07:37:08 【问题描述】:

http://flask.pocoo.org/docs/1.0/quickstart/#a-minimal-application

$ export FLASK_APP=hello.py
$ python -m flask run
 * Running on http://127.0.0.1:5000/

这会启动一个非常简单的内置服务器,这对于 测试,但可能不是您想在生产中使用的。

“非常简单的内置服务器”如何与 Flask Web 应用程序一起使用?

“非常简单的内置服务器”是否也使用 WSGI 来调用 Flask Web 应用程序并与之通信?

“非常简单的内置服务器”和 Flask Web 应用程序是在相同的进程中运行还是在不同的进程中运行?

如果我是正确的,外部 Web 服务器(Apache 或 nginx)需要使用 WSGI 来调用和通信 Flask Web 应用程序,并且它们在同一个进程中运行。

【问题讨论】:

Flask 不是服务器,所以我不确定您所说的第二个要点是什么意思?如果没有服务器,flask 应用程序只是一堆代码监听和响应 如果我是正确的,外部网络服务器(Apache 或 Nginx)需要使用 WSGI 来调用和通信 Flask 网络应用程序,并且它们运行在同一个进程中。 一个典型的设置是 Nginx 作为负载均衡器和反向代理,而 gunicorn 作为服务器。开发服务器使用 WSGI,是的,但它明确记录在生产中不使用。您可以只使用 gunicorn 来为您的应用程序提供服务,而无需使用 Nginx。我对 Apache 不太熟悉 【参考方案1】:

它使用werkzeug simple WSGI server。

这是一个单进程、单线程服务器,所以如果我正确理解您的第二个问题,它不会使用多个进程。该应用程序由处理 Flask 应用程序的同一 python 进程提供服务。

【讨论】:

以上是关于“内置服务器”如何与 Flask Web 应用程序一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

Flask:如何使用 ES6 模块?

如何使用Nginx和uWSGI或Gunicorn在Ubuntu上部署Flask Web应用

[Python WEB开发] 使用WSGI开发类Flask框架

部署 Flask 应用

初识 flask

使用 FLASK 将 REST API 与 Web 界面相结合的最佳实践