这可能是类似的问题https://github.com/rethinkdb/rethinkdb/issues/3211。
在这一行形成示例:
inserted = r.table('todos').insert(request.json).run(g.rdb_conn)
我假设它需要 JSON 格式的数据,因此如果它是 JOSN 格式的字典,则应验证您的 request.data 。此外,JSON 格式数据中的属性应该是 utf8 编码的字符串,而不是 unicode。我不确定是否
curl http://localhost:5000/todos -d "data=Remember the milk" -X POST
生成 JSON 格式的主体,如 {data:"Remember the milk"} 发送到服务器,但我建议您在此处添加额外的逻辑并验证来自客户端的数据是否未损坏并遵循正确的数据模式. 就像是:
@app.route("/todos", methods=['POST'])
def new_todo():
client_data = json.loads(request.data)
object_to_be_inserted = {
'property1': client_data['property1].encode('utf-8') if 'property1' in client_data else '',
'property2': client_data['property2].encode('utf-8') if 'property2' in client_data else ''
}
inserted = r.table('todos').insert(object_to_be_inserted).run(g.rdb_conn)
return jsonify(id=inserted['generated_keys'][0])