Rethinkdb - 函数属性错误

Rethinkdb - function attribute error

我正在编写一个大致遵循 this example.

的应用程序

当我提交 POST 请求时:

curl http://localhost:5000/todos -d "data=Remember the milk" -X POST

我从 RethinkDB 收到以下错误:

rethinkdb/ast.py", line 118, in run return c._start(self, **global_optargs) AttributeError: 'function' object has no attribute '_start'

有人遇到过这种事情吗?我将 RethinkDB 2.2.2 与 Python 3.5.0 和 Flask 0.10.1.

一起使用

谢谢,

阿洛

这可能是类似的问题 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])

我在代码中有一个简单的错误,我没有注意到 r.connect 而不是 r.connect()