在Flask中检索HTTP POST参数的端到端工作示例?

时间:2017-05-04 20:46:36

标签: flask

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应用程序示例吗?

1 个答案:

答案 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"