Flask url_for用gunicorn添加尾部斜线

时间:2018-01-21 06:02:59

标签: python nginx flask gunicorn

我正在使用Flask,在本地开发时,所有这些都可以。但是,当使用nginx和代理传递gunicorn进行部署时,url_for似乎在向URL添加尾随/,这会在从网址中提取json数据时导致错误。这是相关代码:

@app.route('/save', methods=['POST'])
def save():
    name = request.form['name'];
    email = request.form['email']
    data = json.dumps({"name": name, "email": email})
    return redirect(url_for('.record', data=data))

@app.route("/record")
def record():
    // error here because of trailing /
    data = json.loads(request.args['data'])
    //... more code

我非常擅长使用Flask和超级枪手,所以如果我错过任何必要的信息来获取帮助,请告诉我。这是nginx中的proxy_pass配置:

location / {
    proxy_pass http://localhost:8000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
}

然后我只是将gunicorn作为服务运行:

gunicorn --bind 0.0.0.0:8000 app:app

打破网址的示例

https://<ipaddress>/record?data=%7B%22name%22%3A+%22fdaf%22%2C+%22email%22%3A+%22fsd%40sfd.com%22%7D/

0 个答案:

没有答案