Flask-MySQL:如何处理插入到DB的有效负载?

时间:2017-06-25 16:43:44

标签: python mysql flask

我正在尝试将有效负载插入数据库,我有这个代码:

{
  "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='?'

处理有效载荷的正确方法是什么?

1 个答案:

答案 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应该是多余的。