Flask版本:0.12 gunicorn版本:19.7.1 Python版本:2.7.10
当我对全局请求对象(HTTP POST数据所在的位置)执行任何操作时,Flask总是会抛出错误。
RuntimeError:在请求上下文之外工作。
官方的例子 http://flask.pocoo.org/docs/0.12/quickstart/#a-minimal-application
from flask import request
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
do_the_login()
else:
show_the_login_form()
给出了同样的错误。
我经历了至少10个其他示例,但没有一个工作(总是出现相同的错误)。我还检查了如何设置或获取请求上下文(http://flask.pocoo.org/docs/0.12/reqcontext/),并且文档中存在不连贯的混乱。
我发现的其他在线示例要么不起作用,要么太具体而无法发挥作用。
有人可以发布打印POST参数的HTTP POST Flask应用程序示例吗?
答案 0 :(得分:0)
想出来。问题是gunicorn在处理HTTP POST时失败了。导出FLASK_APP环境变量并运行后工作。
在命令行上:
export FLASK_APP=path/to/my/flask/script.py
flask run -p [port number]
在烧瓶脚本中:
@app.route("/example_app", methods=["POST"])
example_function(request.form["field"])
return "finished"