python - 如果我启动一个 flask 应用程序,它会显示两个进程正在运行

标签 python flask

我有一个使用命令行运行的 flask 应用程序。但是,当我检查进程时,它显示有两个进程正在运行,难道不应该只有一个吗?

#!/usr/bin/env bash

# Activate virtual environment
source .venv/bin/activate

export FLASK_APP=migration_status.py
export FLASK_ENV=development
flask run --host=0.0.0.0 --port=5005

如果我运行上面的脚本,然后运行检查 linux 进程。它向我展示了两个实例。

igns      6590   324  1 16:34 pts/2    00:00:00 /home1/igns/git/emsr/.venv/bin/python2.7 /home1/igns/git/emsr/.venv/bin/flask run --host=0.0.0.0 --port=5005
igns      6616  6590  2 16:35 pts/2    00:00:00 /home1/igns/git/emsr/.venv/bin/python2.7 /home1/igns/git/emsr/.venv/bin/flask run --host=0.0.0.0 --port=5005

我在启动应用程序时做错了什么吗?或者这就是它的工作原理?

最佳答案

Flask 的开发服务器是多线程的。 Web 开发服务器通常使用多个进程,因此它们可以同时执行两件事。

  1. 监听http请求并返回响应
  2. 监视代码更改并在更改时重新加载开发服务器

如果您使用标记 flask run --no-reload 运行它,您应该只会看到一个进程。

Flask 1.0 Change Log

The development server uses threads by default. (#2529)

Development Server

关于python - 如果我启动一个 flask 应用程序,它会显示两个进程正在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53543711/

相关文章:

python - 404 尝试链接到另一个页面 Flask 时出错

python flask : AttributeError: 'NoneType' object has no attribute 'is_active'

python - 堆栈和框架有什么区别?

python - Tkinter 按钮距窗口边缘的距离

python - selenium webdriver BrokenPipeError(超时问题)

php - 谷歌应用引擎多语言

python - Flask SQLAlchemy db.create_all() 不创建数据库

python - 如何以编程方式创建 Page 并设置其 StreamField 值?

javascript - 如何使用 flask [使用 flask 示例] 将 javascript 数组传递给 python 脚本

python - Flask session 成员不会跨请求持续存在