我想使用 Flask 创建一个 REST-Api。 作为一个“框架”,我发现了这个 Tutorial这似乎非常适合使用 Flask 创建 REST-API,而且似乎也很容易...
我有这个功能:
@app.route('/api/users', methods=['POST'])
def new_user():
username = request.json.get('username')
password = request.json.get('password')
但是当我尝试使用 SOAPUI 或 HTTPRequester(在 Firefox 中)发布数据时,我总是收到服务器错误 500
我的应用程序/json 数据如下所示:
{
'username' : 'John',
'password' : '1234'
}
而且我检查了在两个工具中它都是作为 application/json 发送的。
所以我在 request.json 之前插入了以下内容:
if not request.json:
abort(400)
现在它以代码 400 中止 - 所以它似乎不是一个 json 对象,对吧?
然后我插入了以下几行:
test = request
print test.data
然后我在看起来像 JSON 的控制台中检索它:
{
'username' : 'John',
'password' : '1234'
}
我知道我可以用这个把它变成字典:
dict = ast.literal_eval(test.data)
但我想使用 Flask 的标准功能。
提前致谢...
请您参考如下方法:
首先检查客户端发送的 HTML header (JS 或其他任何内容)。 Content-Type 应该是 application/json。并使用 request.get_json()。
UPD:您也可以尝试使用 request.get_json(force=True, silent=True)。而且这个方法的flask代码非常简单,你可以通过打断点或者写日志来调试它,以便更好地理解发生了什么。
