2017-05-04 39 views
-3

瓶版本:0.12 gunicorn版本:19.7.1 Python版本:2.7.10在Flask中檢索HTTP POST參數的端到端工作示例?

瓶當我與全球請求對象任何東西(這就是HTTP POST數據雲)總是拋出一個錯誤。

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/),並且文檔中出現了不連貫的混亂情況。

我發現的其他在線例子都沒有工作,或者太具體而無法使用。

有人可以發佈一個HTTP POST Flask應用程序的例子來打印POST參數嗎?

+1

我無法重現您的問題。在路由中運行的所有東西都在請求上下文中。請[edit]包含[mcve]。 – davidism

+0

然後發佈一個例子作爲答案,我會測試它。我已經發布了官方的例子(這對我不起作用)。 – user1258361

+0

嘗試在'''@ app.route('/ login',methods = ['GET','POST'])之前添加'''app = Flask(__ name __)''' –

回答

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"