我正在尝试将有效负载插入数据库,我有这个代码:
{
"username": "edjones",
"fb_id": "aklsjdla123",
"auth_token": "alksdjaks",
"date_joined": 12309201910
}
这是我试图在Postman上测试的示例JSON:
args = tuple(map(db.literal, args))
TypeError: argument 2 to map() must support iteration
这是我在Postman上遇到的错误:
nargs='?'
处理有效载荷的正确方法是什么?
答案 0 :(得分:2)
Request.get_json()
返回已解析的 json正文,jsonify()
序列化数据到JSON并将其包装在Response中。游标的execute()
方法需要序列或参数映射作为第二个参数,但是您将其传递给Response。将通话转至jsonify()
:
@app.route('/login', methods=['POST'])
def login():
credentials = request.get_json()
cur = mysql.connection.cursor()
cur.execute('''INSERT INTO User (username, fb_id, auth_token, date_joined)
VALUES (%(username)s, %(fb_id)s, %(auth_token)s, %(date_joined)s''',
credentials)
return "ok"
由于您已经在route()
装饰器中将已接受的方法限制为POST,因此if-guard应该是多余的。