python - Flask 在标准输出被重定向时禁用标准输出
问题描述
我想使用我的 Flask 应用程序的标准输出将状态信息传达给通过管道连接的其他进程,但事实证明,当标准输出被重定向时,Flask 会以某种方式禁用标准输出。
这是我的示例 Flask 应用程序:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
def prepare():
# Do some preparation work
pass
prepare()
print('ready')
现在比较两种不同但非常相似的启动此应用程序的方式:
$ FLASK_APP=my_app.py flask run 2>/dev/null
* Serving Flask app "my_app.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
ready
当标准输出被重定向时,我的状态消息被静音(但应用程序在通过 Web 界面访问时可以正常工作):
$ FLASK_APP=my_app.py flask run 2>/dev/null | cat
* Serving Flask app "my_app.py"
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
有人知道如何允许标准输出消息通过 Flask 应用程序中的管道吗?
我不能为此目的使用 Web 界面,因为我有一个装饰有状态的函数@before_first_request
,查询状态会触发它,这是我不想要的。
版本信息:
$ flask --version
Python 3.6.12
Flask 1.1.2
Werkzeug 1.0.1
解决方案
推荐阅读
- java - Spring JPA 数据存储库通用实现示例
- scala - Apache Spark RDD + persist() + 惰性
- python - 计算熊猫数据框中连续正值的有效方法
- python - 将多列分类变量重塑和编码为一种热编码
- java - 在 IntelliJ 中应用格式化编码样式
- typo3 - 带有选择字段的 TCA 建议向导(并排)
- unit-testing - Howto resolve .net test hangs on "Starting test execution, please wait..."
- data-structures - given two queues, find which elements of the first are not in the second.
- ios - Xamarin IOS SlideOver 套件 SlideMenu 不工作
- java - How would I swap 2 letters in a java string using toCharArray()?