从openshift中部署的flask应用程序访问请求参数

时间:2015-05-17 07:54:36

标签: python http flask openshift

我有一个python网络应用程序,可以通过POST / GET参数对您发送给它的数据进行计算。 该应用程序在我的机器上完美运行,但是当部署到openshift时,它无法访问参数,错误号为32:管道损坏

然后我使用这个quickstart repo专注于服务器代码,而不是应用程序代码。

要区分POST和GET请求并在那里结束

这里是相关的python代码:

package com.dergolem.abc_2;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.Toast;


public class MultiClick
extends Activity
{

    Button btn1 = null;
    Button btn2 = null;
    Button btn3 = null;

    @Override
    public void onCreate(final Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        setContentView(R.layout.multi_click);

        btn1 = (Button) findViewById(R.id.Button1);
        btn2 = (Button) findViewById(R.id.Button2);
        btn3 = (Button) findViewById(R.id.Button3);
    }

    public void clickHandler(final View v)
    {
        String str = "";
        switch (v.getId())
        {
            case R.id.Button1:
            {
                str = "1";
                break;
            }
            case R.id.Button2:
            {
                str = "2";
                break;
            }
            case R.id.Button3:
            {
                str = "3";
                break;
            }
        }
        Toast.makeText(this, "Button " + str, Toast.LENGTH_SHORT).show();
    }
}

所以我只想知道如何访问参数。

2 个答案:

答案 0 :(得分:1)

不要在生产中使用Flask的开发服务器。使用可以处理并发请求的正确WSGI服务器,例如Gunicorn。现在尝试打开服务器的线程模式,看它是否有效。

app.run(host="x.x.x.x", port=1234, threaded=True)

答案 1 :(得分:0)

您可以通过以下方式从POST请求中获取表单数据:

name = request.form.get("name")

重构:

@app.route('/', methods=['GET', 'POST'])
    def index():
        if request.method == 'POST':
            name = request.form.get("name")
            result = "We received a POST request and the value for <name> is - {0}".format(name)
        else:
            result = "This is a GET request"
        return result

请参阅official Flask documentation以了解有关Request对象的更多信息。