我一直在使用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网址,返回数据就好了。当我登陆'打印请求'时出现错误,因为请求是无。
谢谢,
答案 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)