HTTP Post是否被Cloud9阻止?

时间:2014-12-15 17:39:51

标签: python flask cloud9-ide

我一直在使用Cloud9 ide上的Python / Flask。到目前为止很有趣。但是当我尝试在我的测试项目中添加一个http帖子时,Flask返回403或500.据我所知,当我附加数据或发送POST方法时,'request'对象为None。但它没有意义。这是非常直接的,应该尽我所能。这是python:

from flask import Flask, jsonify, abort, request
@app.route('/test', methods = ['POST'])
def post():
    print ('started')
    print request
    if request.method == 'POST':
        something = request.get_json()
        print something

Flask正常运行。我可以点击GET网址,返回数据就好了。当我登陆'打印请求'时出现错误,因为请求是无。

谢谢,

1 个答案:

答案 0 :(得分:1)

这里有两个问题:

  • 您收到500错误

  • “某事”总是无

第一个问题是因为你没有从路线功能中返回任何东西。

127.0.0.1 - - [15/Dec/2014 15:08:59] "POST /test HTTP/1.1" 500 -
Traceback (most recent call last):
  ...snip...
  ValueError: View function did not return a response

您可以通过在函数末尾添加return语句来解决此问题。不要忘记它需要是一个字符串。

@app.route('/hi', methods = ['POST'])
def post():
    return "Hello, World!"

第二个问题不是它看起来的样子。我怀疑该对象不是None,但返回字符串表示的函数返回None,因此这是打印的内容。请尝试print type(request)查看此操作。

我认为您想要访问的是form字段。这是一个完整的例子:

from flask import Flask, request

app = Flask(__name__) 

@app.route('/test', methods = ['POST'])
def post():
    print type(request)
    if request.method == 'POST':
        print request.form
    return str(request.form)

app.run(debug=True)