flask,Jsonify 在 Heroku 上打印不漂亮

flask, Jsonify not pretty prints on Heroku

我正在构建一个简单的 Flask 应用程序,jsonify() 在我的本地主机上运行良好,它将 return 信息以 json 格式换行和适当的缩进,但是当 运行 在 heroku 上完全相同的代码时,它会省略新行和缩进 This is how it looks on my localhost and this is on heroku

jsonify()

的文档中提到了这一点

This function's response will be pretty printed if the JSONIFY_PRETTYPRINT_REGULAR config parameter is set to True or the Flask app is running in debug mode

我都设置好了

app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True
app.run(debug=True)

我尝试手动将内容类型设置为 application/json,但这没有帮助,我什至尝试使用 json.dumps() 并得到相同的结果

return jsonify(data), 200, {'Content-Type': 'application/json; charset=utf-8'}

任何关于可能导致 heroku 打印不漂亮的问题的输入?

编辑:

from flask import request, jsonify, Flask


app = Flask(__name__)

@app.route('/test', methods = ['GET'])
def test():
   test_dict = {"Key1": "Value1", "Key2": ["Value2","Value2","Value2",]}
   print(jsonify(test_dict).headers)
   return jsonify(test_dict)

if __name__ == '__main__':
    app.run(debug=True)

这个简单的烧瓶应用程序可以像上面链接的照片一样在我的本地主机上漂亮地打印出来,但是在 heroku 上它不会。看起来它是 returning 纯文本。可以在这里看到https://jojoapi.herokuapp.com/test。 我正在使用 gunicorn,不确定这是否对输出有任何影响

编辑 2

所以,我按照评论中的建议将手动调试设置为 True app.config["DEBUG"] = True,现在它在 heroku 上可以正常工作了

一些服务器(不仅是 Heroku)可能不会 运行 直接你的脚本并且不会执行 app(debug=True) 但他们可能会导入 app 到自己的代码并 运行 它与自己的论点 app(...own args...) - 这可能会产生问题。

您可以通过不同的方法在代码中设置调试模式。

app.config["DEBUG"] = True

最终你可以尝试在Linux

中设置环境变量
export FLASK_DEBUG=1

export FLASK_ENV=development

参见文档:Debug Mode

Flask 文档:Standalone WSGI Containers - 它显示了导入 app(如 myproject:app)的服务器,它们可能 运行 有自己的参数。